我有一个使用Java3D成功编译的类,虽然当我尝试运行它时会说:线程“main”中的异常java.lang.NoClassDefFoundError: javax / media / j3d / Canvas3D ,
使用以下堆栈跟踪:
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.media.j3d.Canvas3D
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
我已尝试过的东西:
在将Java3D jar复制到/ jre / lib / ext /中之后,我甚至无法编译它。
我有最新的Java,Java3D,我正在使用Notepad ++,我尝试重新安装Java3D。
我已正确设置了类路径/路径。
代码中没有错误。
我可以运行我创建的普通Java应用程序。
我在运行应用程序时尝试使用类路径(java -classpath blahblah ApplicationName)。
我已经检查了罐子里面的类(包括Canvas3D)肯定在那里。
答案 0 :(得分:0)
并非你所说的一切都是真的。
如果类在jar中,并且如果你已经正确设置了类路径,那么你就不会收到这条消息。
我怀疑你有一个与类路径混淆的构建路径(它主要与运行时相关联,其中构建路径与编译时间相关联)。在不了解运行时环境的更多细节的情况下,很难更具体。
总是让我感到困惑的是,如果某个有问题的人无法解决,那么所有这些事情都是“正确地”设置的:你怎么知道的?问题不是相反的问题,至少足以引起一些小问题吗?