Java et OpenGl

Java et OpenGl - Java - Programmation

Marsh Posté le 28-05-2010 à 11:30:23    

Bonjour,  
 
je souhaite faire de la 3D avec java avec une contrainte : utiliser OpenGl.
 
J'ai commencé avec Netbeans mais j'ai des problèmes de java.lang.NoClassDefFoundError: com/jogamp/common/jvm/JVMUtil, j'ai donc lu le post suivant de votre forum :
http://forum.hardware.fr/hfr/Progr [...] 1088_1.htm
et j'ai décidé de suivre pas à pas ces étapes en abandonnant NetBeans pour le moment.
 
Voici les étapes que j'ai suive :
1] Création de l'arborescence :
M:\TravailPerso\Projets\Test dossier qui va contenir mon projet.
M:\TravailPerso\Projets\Test\classes
M:\TravailPerso\Projets\Test\conf
M:\TravailPerso\Projets\Test\lib
M:\TravailPerso\Projets\Test\src\OpenGl
 
2] Téléchargement des jars qu'il me faut (j'utilise JOGL) que j'ai placé dans le dossier M:\TravailPerso\Projets\Test\lib :
jogl.all.jar
jogl-demos-data.jar
jogl-natives-windows-i586.jar
nativewindow.all.jar
 
3] Création de la classe main :

Code :
  1. package OpenGl;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.media.opengl.*;
  5. //import com.sun.opengl.util.*;
  6. import javax.media.opengl.awt.GLCanvas;
  7. import javax.media.opengl.GLProfile;
  8. public class test implements GLEventListener {
  9. public static void main(String[] args) {
  10.  Frame frame = new Frame("test" );
  11.  GLCanvas canvas = new GLCanvas();
  12.  //canvas.addGLEventListener(new test());
  13.  //frame.add(canvas);
  14.  //final Animator animator = new Animator(canvas);
  15.  frame.addWindowListener(new WindowAdapter() {
  16.   public void windowClosing(WindowEvent e) {
  17.    new Thread(new Runnable() {
  18.     public void run() {
  19.      //animator.stop();
  20.      System.exit(0);
  21.     }
  22.    }).start();
  23.   }
  24.  });
  25.  frame.setSize(300, 300);
  26.  frame.setVisible(true);
  27.  //animator.start();
  28. }
  29. public void init(GLAutoDrawable drawable) {
  30.  GL gl = drawable.getGL();
  31.  gl.setSwapInterval(1);
  32. }
  33. public void reshape(GLAutoDrawable drawable, int x, int y, int width,
  34.   int height) {
  35.  GL gl = drawable.getGL();
  36. }
  37. public void display(GLAutoDrawable drawable) {
  38.  GL gl = drawable.getGL();
  39. }
  40. public void displayChanged(GLAutoDrawable drawable, boolean modeChanged,
  41.   boolean deviceChanged) {
  42. }
  43.     public void dispose(GLAutoDrawable glad) {
  44.         throw new UnsupportedOperationException("Not supported yet." );
  45.     }
  46. }


 
4] Création des .bat :
- setEnv.bat
SET JAVA_HOME=M:\TravailPerso\jdk6Update20
SET PATH=%JAVA_HOME%\bin;%PATH%
 
SET CLASSPATH=.\lib\jogl.all.jar
SET CLASSPATH=%CLASSPATH%;.\lib\jogl-demos-data.jar
SET CLASSPATH=%CLASSPATH%;.\lib\jogl-natives-windows-i586.jar
SET CLASSPATH=%CLASSPATH%;.\lib\nativewindow.all.jar
SET CLASSPATH=%CLASSPATH%;.\classes  
 
-make.bat
javac -classpath %CLASSPATH% -d .\classes src\OpenGl\*.java
 
- run.bat
java -classpath %CLASSPATH% OpenGl.test
 
Je n'ai aucune erreur de compilation, par contre quand j'exécute le code avec ma commande run, j'ai l'erreur suivante :
Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/common/jvm/JVMUtil
        at javax.media.opengl.GLProfile$1.run(GLProfile.java:811)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:808)
        at javax.media.opengl.awt.GLCanvas.<clinit>(GLCanvas.java:78)
        at OpenGl.test.main(test.java:16)
Caused by: java.lang.ClassNotFoundException: com.jogamp.common.jvm.JVMUtil
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        ... 5 more
 
Avez vous des idées pour résoudre cet erreur ?
 
Merci.

Reply

Marsh Posté le 28-05-2010 à 11:30:23   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed