在我从一个ant文件构建这个项目之后,我收到一个包含我构建的所有类的jar。当我尝试运行这个罐子,我得到以下错误:在运行时找不到jar的类,但用于编译
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/SceneGraphObject
此错误指示一个罐子中,特别是从j3dcore.jar
Java3D的,我使用不能被发现。但是,当通过ant build编译到类文件中时,此jar文件位于类路径中。
为什么在运行时不能找到这个类,但它在编译时发现?当运行jar以及在ant版本中更改它时,是否必须在shell中手动更改我的类路径?
如果我添加的罐子使用java -cp j3d/*.jar -jar idv.jar
我的classpath中我得到的错误Error: Could not find or load main class j3d.j3dutils.jar
感谢Jon的一个非常容易阅读和理解的答案。所有工作。 – nook
*“我不清楚-cp是否打算用-jar工作*。事实上,它不起作用。如果使用'--jar','java'命令将*默认*忽略'-cp'和'$ CLASSPATH'。 –
@StephenC:对 - 这就是我所期望的(除了默默的部分,对于'-cp'),但不想太直率。在我看来,如果你同时指定'-cp'和'-jar',那么它确实应该抱怨... –