Java3D-未找到某些类,但类路径设置正确

Java3D-未找到某些类,但类路径设置正确,java,runtime,noclassdeffounderror,java-3d,canvas3d,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)

我有一个使用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)肯定在里面


  • 不是你说的每件事都是真的

    如果类在JAR中,并且您已经正确设置了类路径,那么您将不会收到此消息

    我怀疑您将生成路径与类路径(主要与运行时关联,其中生成路径与编译时关联)混淆了。如果不了解运行时环境的更多细节,就很难更加具体


    总是让我困惑的是,一个有着无法解决的问题的人如何如此明确地断言所有这些事情都是“正确”设置的:你怎么知道的?这个问题是不是有一些相反的证据,至少足以引起一个小小的疑问?

    使用哪个ide?eclipse?我已经将Java3D JAR(多个位置)的位置放入类路径和路径环境变量中,我相当肯定它们是正确的。关于我的运行时环境,您具体需要了解什么?我会告诉你我所知道的任何细节,但我不确定你需要什么。Biswajit,我确实使用了Eclipse,尽管我现在已经停止使用它了。我改用记事本+,因为它不做那种讨厌的自动完成的事情。同时,感谢本杰明·格伦鲍姆让我的帖子看起来更好。(叹气)我们几乎没有足够的信息知道该问什么。你提到记事本,所以你在命令行界面上?在这种情况下,我们需要操作系统、默认目录、源文件和类文件的位置、类路径的值以及在顶部溢出的NoClassDefError行。简言之,我们需要知道您正在运行的环境以及发生了什么,而不是您对它的解释,并断言所有这些都是正确的。对不起,如果我表现得傲慢,我只是相信我已经完成了所有需要做的事情。是的,我正在Windows 7 64位Home Premium上使用命令提示符。我不确定你所说的“默认目录”是什么意思,不过我假设你指的是安装Java的位置,即“C:\program files(x86)\Java\”、Java 7、Java3D和JRE安装在那里。我把类文件和Java文件放在桌面上的一个文件夹中,还有一个CMD的副本,我使用它是因为它更简单。“溢出的线”在我的问题上面。我将再次注释,因为我没有留下任何字符。类路径的值:。;C:\ProgramFiles(x86)\Java\jre6\bin\;C:\ProgramFiles(x86)\Java\jre7\lib\ext\QTJava.zip;C:\ProgramFiles(x86)\Java\Java3D\1.5.1\bin\;C:\ProgramFiles(x86)\Java\Java3D\1.5.1\lib\ext\;C:\ProgramFiles(x86)\Java\jdk1.6.0\u 22\jre\lib\ext\(我不能在这里进行格式化,顺便说一句)遇到错误时我做了什么:我加载CMD.exe,键入“javac”,它成功编译,然后键入“Java”,然后显示上面的错误。谢谢。包含canvas3d的.jar文件在哪个文件夹中?或者你有它的类文件吗?您似乎有一个jre6运行时和一个jre7运行时下的QTJava库;这至少是令人困惑的,而且可能有问题(如果库依赖于java7,那么您不希望java6出现在该路径中)。此外,QTJava是一个zip文件;虽然您可以这样命名您的.jar文件,但我怀疑它不是一个jar,而是一个包含jar的zip文件。你可以看看它的内容;如果它包含一个.jar,那可能是您的问题。