2009-12-30 3 views
2

J'essaie d'obtenir un programme simple en utilisant JOGL pour compiler via la ligne de commande. Cela ne fonctionne pas vraiment. J'ai essayé de référencer jogl.all.jar, gluegen-rt.jar, nativewindow.all.jar et newt.all.jar comme documentation officielle suggérée, mais le compilateur ne peut toujours pas trouver les classes JOGL.Problèmes de compilation de fichiers en utilisant JOGL

Voici le code:

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) { 
    } 

} 

C'est ce que je utilise pour compiler:

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

Le compilateur java semble ignorer mes spécifications classpath entièrement.

Éditer: Il semble que ce soit bien à propos de GL, GLAutoDrawable et GLEventListener, mais il ne peut pas trouver GLCanvas. Jetez un oeil à l'intérieur de jogl.all.jar, il semble que GLCanvas.class n'est pas là.

+0

Sur quelle plateforme êtes-vous? Je sais que OS X peut être assez difficile et ennuyeux quand il s'agit d'ajouter des choses au classpath. – goatlinks

+0

Non, je suis sur Windows. – gamedevv

+0

Avez-vous essayé d'ajouter la lettre de lecteur aux chemins? –

Répondre

2

Essayez chacun d'eux et voir si l'on travaille:

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 
+0

Deuxième fonctionne! – gamedevv

0

Ne pas oublier d'utiliser les séparateurs spécifiques os (« de \ » et « » sous Windows, «/» et « : » sous Linux) et maintenant jogl.all.jar a été renommé jogl-all.jar. Vous n'avez qu'à mettre jogl-all.jar et gluegen-rt.jar dans votre classpath. gluegen-rt-natives -? - ?. jar et jogl-all-natives -? - ?. jar doit être dans le même répertoire mais pas dans le classpath.

Questions connexes