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 :
- package OpenGl;
- import java.awt.*;
- import java.awt.event.*;
- import javax.media.opengl.*;
- //import com.sun.opengl.util.*;
- import javax.media.opengl.awt.GLCanvas;
- import javax.media.opengl.GLProfile;
- public class test implements GLEventListener {
- public static void main(String[] args) {
- Frame frame = new Frame("test" );
- GLCanvas canvas = new GLCanvas();
- //canvas.addGLEventListener(new test());
- //frame.add(canvas);
- //final Animator animator = new Animator(canvas);
- frame.addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent e) {
- new Thread(new Runnable() {
- public void run() {
- //animator.stop();
- System.exit(0);
- }
- }).start();
- }
- });
- frame.setSize(300, 300);
- frame.setVisible(true);
- //animator.start();
- }
- public void init(GLAutoDrawable drawable) {
- GL gl = drawable.getGL();
- gl.setSwapInterval(1);
- }
- public void reshape(GLAutoDrawable drawable, int x, int y, int width,
- int height) {
- GL gl = drawable.getGL();
- }
- public void display(GLAutoDrawable drawable) {
- GL gl = drawable.getGL();
- }
- public void displayChanged(GLAutoDrawable drawable, boolean modeChanged,
- boolean deviceChanged) {
- }
- public void dispose(GLAutoDrawable glad) {
- throw new UnsupportedOperationException("Not supported yet." );
- }
- }
|
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.