Java3D - 找不到某些类但正确设置了类路径

时间:2013-03-14 17:33:00

标签: java runtime noclassdeffounderror java-3d canvas3d

我有一个使用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)

我已尝试过的东西:

  1. 在将Java3D jar复制到/ jre / lib / ext /中之后,我甚至无法编译它。

  2. 我有最新的Java,Java3D,我正在使用Notepad ++,我尝试重新安装Java3D。

  3. 我已正确设置了类路径/路径。

  4. 代码中没有错误。

  5. 我可以运行我创建的普通Java应用程序。

  6. 我在运行应用程序时尝试使用类路径(java -classpath blahblah ApplicationName)。

  7. 我已经检查了罐子里面的类(包括Canvas3D)肯定在那里。

1 个答案:

答案 0 :(得分:0)

并非你所说的一切都是真的。

如果类在jar中,并且如果你已经正确设置了类路径,那么你就不会收到这条消息。

我怀疑你有一个与类路径混淆的构建路径(它主要与运行时相关联,其中构建路径与编译时间相关联)。在不了解运行时环境的更多细节的情况下,很难更具体。

总是让我感到困惑的是,如果某个有问题的人无法解决,那么所有这些事情都是“正确地”设置的:你怎么知道的?问题不是相反的问题,至少足以引起一些小问题吗?