eclipse - JOGL 抛出 ClassNotFoundException?

标签 eclipse macos noclassdeffounderror jogl java-3d

我在这个网站上多次看到这个问题,但从未真正看到明确的答案,所以请原谅我重复它。在使用 JOGL 和 Java3D 编程时,我遇到了一些错误。我正在尝试创建一个项目,最终可能会将其放到 Android 应用商店中。我开始这个项目时只使用 Java3D 和 JOGL,并将它们放入我的 mac 上的系统库中,它们运行得很好。然后,为了尝试使项目可移植,我将 J3D 和 JOGL 文件移至项目内,以便将它们编译成无需安装 j3d 和 JOGL 即可运行的 jar 文件。但每次我运行该项目时都会抛出此错误:

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 一样,但由于某种原因找不到 GL.class 文件。

提前感谢您的帮助。

最佳答案

当您将应用程序导出为 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 命令行选项来运行您的应用程序。

关于eclipse - JOGL 抛出 ClassNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17979266/

相关文章:

mysql5 - 由于 'root' 无法创建数据库或执行任何操作(拒绝访问)

python - 将 "NS.time"从 plist 转换为实际时间

java - Jasypt 加密异常 : Exception in thread "main" java. lang.NoClassDefFoundError: org/jasypt/encryption/StringEncryptor

android - 从 32 位机器移动到 64 位时,我必须卸载我的应用程序

java - @Disabled 在 JUnit5 中不起作用

php - Eclipse PDT 无法识别 FuelPHP Autoloader 的核心命名空间

objective-c - 从可见的 tableView 中获取行的位置,而不是整个 tableView

android - NoClassDefFoundError:org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration 仅 API 19

java - Vaadin:SubscriberExceptionHandler 上出现 NoClassDefFoundError?

android - Eclipse 更新破坏了我的 IDE