【问题标题】:Problems compiling files using JOGL使用 JOGL 编译文件的问题
【发布时间】:2009-12-30 20:03:58
【问题描述】:

我正在尝试使用 JOGL 通过命令行编译一个简单的程序。这真的行不通。我尝试按照官方文档的建议引用 jogl.all.jar、gluegen-rt.jar、nativewindow.all.jar 和 newt.all.jar,但编译器仍然找不到 JOGL 类。

这是代码:

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;

public class Test implements GLEventListener {

    public static void main(String[] args) {
        Frame frame = new Frame("JOGL Test");
        GLCanvas canvas = new GLCanvas();
        canvas.addGLEventListener(new Test());
        frame.add(canvas);
        frame.setSize(300, 300);
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

    public void init(GLAutoDrawable drawable) {
    }

    public void reshape(GLAutoDrawable drawable, int x, int y, int width,
            int height) {
    }

    public void display(GLAutoDrawable drawable) {
        GL gl = drawable.getGL();
        gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        gl.glClear(GL.GL_COLOR_BUFFER_BIT);
        gl.glColor3f(1.0f, 1.0f, 1.0f);
        gl.glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
        gl.glBegin(GL.GL_POLYGON);
        gl.glVertex2f(-0.5f, -0.5f);
        gl.glVertex2f(-0.5f, 0.5f);
        gl.glVertex2f(0.5f, 0.5f);
        gl.glVertex2f(0.5f, -0.5f);
        gl.glEnd();
        gl.glFlush();
    }

    public void displayChanged(GLAutoDrawable drawable, boolean modeChanged,
            boolean deviceChanged) {
    }

}

这是我用来编译它的:

javac -cp /jogl/lib/jogl.all.jar;/jogl/lib/gluegen-rt.jar;/jogl/lib/nativewindow.all.jar;/jogl/lib/newt.all.jar Test.java

java 编译器似乎完全忽略了我的类路径规范。

编辑:GL、GLAutoDrawable 和 GLEventListener 似乎没问题,只是找不到 GLCanvas。看看jogl.all.jar里面,好像没有GLCanvas.class。

【问题讨论】:

  • 你在哪个平台上?我知道 OS X 在向类路径添加内容时会非常棘手和烦人。
  • 您是否尝试将驱动器号添加到路径中?
  • 嗨。您将 JOGL 2.0 JAR 与使用 JOGL 1.1.1a 的源代码一起使用。必须修改您的源代码以使用 JOGL 2.0。例如,GLCanvas 已移至 javax.media.opengl.awt。

标签: jogl


【解决方案1】:

尝试每一个,看看是否有效:

javac -cp \jogl\lib\jogl.all.jar;\jogl\lib\gluegen-rt.jar;\jogl\lib\nativewindow.all.jar;\jogl\lib\newt.all.jar Test.java

javac -cp ./jogl/lib/jogl.all.jar;./jogl/lib/gluegen-rt.jar;./jogl/lib/nativewindow.all.jar;./jogl/lib/newt.all.jar Test.java

javac -cp .\jogl\lib\jogl.all.jar;.\jogl\lib\gluegen-rt.jar;.\jogl\lib\nativewindow.all.jar;.\jogl\lib\newt.all.jar Test.java

【讨论】:

    【解决方案2】:

    不要忘记使用特定于操作系统的分隔符(Windows 下的“\”和“;”,Linux 下的“/”和“:”),现在 jogl.all.jar 已重命名为 jogl-all.jar。你只需要将 jogl-all.jar 和 gluegen-rt.jar 放在你的类路径中。 gluegen-rt-natives-?-?.jar 和 jogl-all-natives-?-?.jar 必须在同一目录中,但不在类路径中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      相关资源
      最近更新 更多