gpt4 book ai didi

Java NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-01 05:34:17 26 4
gpt4 key购买 nike

对于学校的作业,我需要创建一个类 Blender 来实现一些预定义的东西。我收到了一个 JAR 文件 imagecompositor.jar,它可以完成所有操作并使用 Blender 类。 JAR 文件包含两个类(ImageCompositor.classStDraw.class)。

要运行该程序,老师说我必须运行以下命令:

java -cp ... ass3.ImageCompositor img1 img2 offsetx offsety

我只知道如何编写 Java 代码。我不知道如何将外部类加载到 JAR 文件中。所以我尝试了这个:

java -cp imagecompositor.jar ass3.ImageCompositor img1.png img2.png 0 0

但它抛出了一个NoClassDefFoundError:

Exception in thread "main" java.lang.NoClassDefFoundError: ass3/Blender
at ass3.ImageCompositor.main(ImageCompositor.java:113)

Blender 类中包含 package ass3 行。我做错了什么?

我想提供更多信息,但我不知道如何获取堆栈跟踪等。

最佳答案

您需要将 Blender 类添加到类路径中。

命令行

java -cp imagecompositor.jar ...

使用 imagecompositor.jar 的类路径。这告诉 Java 虚拟机 (JVM) 查找 jar 文件。它没有告诉 JVM 去​​寻找你的类。如果您已将它们打包成 jar 文件,则应该这样做

java -cp imagecompositor.jar;myclasses.jar ...

如果 .class 文件位于根目录 path/to/someRoot 的树中(例如类 ass3.Blender 应该位于 path/to/someRoot/ass3/Blender.class),那么你应该使用相同的语法,但使用根目录而不是 .jar 文件(我认为这是正确的,找不到文档):

java -cp imagecompositor.jar;path/to/someRoot ...

关于Java NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8422633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com