为什么这个Java OpenGL(JOGL)程序不会运行?

以下代码来自https://sites.google.com/site/justinscsstuff/jogl-tutorial-2

import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.opengl.*; import javax.media.opengl.awt.GLCanvas; public class SimpleScene { public static void main(String[] args) { GLProfile glp = GLProfile.getDefault(); GLCapabilities caps = new GLCapabilities(glp); GLCanvas canvas = new GLCanvas(caps); Frame frame = new Frame("AWT Window Test"); frame.setSize(300, 300); frame.add(canvas); frame.setVisible(true); // by default, an AWT Frame doesn't do anything when you click // the close button; this bit of code will terminate the program when // the window is asked to close frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } } 

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

 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最初发布给出的正确答案,但我遇到了同样的错误,并认为我会帮助下一个人。