我在这个网站上见过几次这个问题,但从来没有见过明确的答案,所以请原谅我再重复一遍。在使用JOGL和Java3D进行编程时,我遇到了一些错误。我试图创建一个项目,我可能最终会在Android应用商店。我开始这个项目只是使用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,并将jogl-all.jar和gluegen-rt.jar文件放在项目的类路径中,以及所有需要的j3d jars中,但由于某种原因,它无法找到GL.class文件。
提前谢谢你的帮助。
发布于 2013-08-02 00:55:59
将应用程序导出为可运行的JAR时,请使用+ Library handling:将所需库复制到生成JAR旁边的子文件夹中,或+ Library handling:将所需库打包到生成的JAR中
更多信息可在慢跑慢跑wiki:IDE Handling中获得。
此外,您还需要使用java -jar yourapp.jar命令行选项来运行应用程序。
https://stackoverflow.com/questions/17979266
复制相似问题