为什么赢了';这个Java OpenGL(JOGL)程序运行吗?

为什么赢了';这个Java OpenGL(JOGL)程序运行吗?,java,opengl,jogl,Java,Opengl,Jogl,以下代码取自 它编译起来没有任何问题,但是当我使用 java SimpleScene 我得到以下错误 C:\Users\Mitc\Drive\Google Drive\Game\Display>java SimpleScene Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GLCapabilitiesImmutable at java.lang.Class.get

以下代码取自

它编译起来没有任何问题,但是当我使用

java SimpleScene
我得到以下错误

C:\Users\Mitc\Drive\Google Drive\Game\Display>java SimpleScene
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GLCapabilitiesImmutable
        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.opengl.GLCapabilitiesImmutable
        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)
        ... 6 more

有什么想法吗?

由于您已经用JOGL jar文件编译了该文件,您只需要确保在运行时类路径中有这些文件:

java -cp gluegen-rt.jar;jogl-all.jar;. SimpleScene

您需要使用JOGL
我意识到这不是最初发布OP时给出的正确答案,但我遇到了同样的错误,我想我会帮助下一个人。

他使用JOGL 2,这个版本中没有JOGL.jar(JOGL.jar来自JOGL 1)。通常,使用jogl-all.jar,gluegen-rt.jar也必须在类路径中。而是遵循以下说明:感谢您的快速修复。JOGL 2不再强制设置Java库路径,因为它会自动从jar(JOGL all natives-.jar和gluegen rt natives-.jar)中提取本机库,前提是它们与非本机库(JOGL-all.jar和gluegen-rt.jar)位于同一目录中。原始海报可以简单地替换“javax.media”通过“com.jogamp”使他的代码使用最新版本,而不是使用过时的版本。包装成ZIP文件的JAR文件的问题来自于一些web浏览器出于“安全”目的将JAR包装成ZIP,而不是下载包含所有JAR的7z归档文件,或者使用包含一个用于JogAmp的fat归档文件。关于包,是的,对于这个问题是这样的。这更多的是对错误消息的响应,这可能发生在用户没有源代码的代码中。@gouessej至于压缩,它有一个.jar扩展名,这很奇怪。我知道这很奇怪,这是我将自己的胖jar(我的游戏)放入本机包的主要原因。Windows下的Mozilla Firefox过去也这么做过(JAR->ZIP命名为JAR),但我认为这已经是过去的事了。这似乎是我电脑上Chrome、Firefox和Midori的行为,但wget确实给了我一个合适的JAR,所以,是的,它只是浏览器。它真的应该在他们身上加一个.zip扩展名。。。
java -cp gluegen-rt.jar;jogl-all.jar;. SimpleScene