JOGL抛出ClassNotFoundException?

时间:2013-07-31 19:31:42

标签: eclipse macos noclassdeffounderror jogl java-3d

我在这个网站上看到过这个问题几次,但从未真正看到过明确的答案,所以请原谅我重复一遍。使用JOGL和Java3D进行编程时遇到了一些错误。我试图创建一个我可能最终放在Android App Store上的项目。我刚刚使用Java3D和JOGL开始了这个项目,并将它们放在我的mac上的系统库中,它们工作得很好。然后,为了使项目可移植,我将J3D和JOGL文件移动到项目中,这样就可以将它们编译成一个可以运行的jar文件,而无需安装j3d和JOGL。但是每次我运行项目时都会抛出这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GL
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:73)
    at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:61)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:90)
    at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:832)
    at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:274)
    at javax.media.j3d.GroupRetained.<init>(GroupRetained.java:155)
    at javax.media.j3d.TransformGroupRetained.<init>(TransformGroupRetained.java:116)
    at javax.media.j3d.TransformGroup.createRetained(TransformGroup.java:114)
    at javax.media.j3d.SceneGraphObject.<init>(SceneGraphObject.java:114)
    at javax.media.j3d.Node.<init>(Node.java:172)
    at javax.media.j3d.Group.<init>(Group.java:549)
    at javax.media.j3d.TransformGroup.<init>(TransformGroup.java:87)
    at src.Project.<clinit>(Project.java:47)
    at src.ProjectPanel.<clinit>(ProjectPanel.java:8)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GL
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 17 more

我正在使用Eclipse作为IDE,并且在项目的类路径中包含jogl-all.jargluegen-rt.jar文件,以及所有需要的j3d jar,但它找不到{ {1}}文件由于某种原因。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

将应用程序导出为Runnable JAR时,请使用          +图书馆处理:            将所需的库复制到生成的JAR旁边的子文件夹中 要么          +图书馆处理:            将所需的库打包到生成的JAR中

更多信息可在jogamp jogl wiki中找到: http://jogamp.org/wiki/index.php/Setting_up_a_JogAmp_project_in_your_favorite_IDE http://jogamp.org/wiki/index.php/JogAmp_JAR_File_Handling

此外,您还需要使用java -jar yourapp.jar命令行选项来运行您的应用程序。