Bonjour à tous,
Après quelques déboires pour récupérer un projet développé en C# avec la librairie XNA en version 2005 (ça c'est pour le troll ^^), j'ai décidé de m'intéresser à son équivalent dans le monde du libre avec la librairie JOGL. Concernant mon environnement de développement, je travaille actuellement sur un Windows 7 en 64 bits, sous Eclipse mais je souhaite que mon application fonctionne à terme sur d'autres OS (Windows 8 pour commencer, et pourquoi pas par la suite sous Mac, Unix, …) d'où l'idée de basculer dans le monde du Java. J'aime aussi l'idée que j'aurai certainement beaucoup moins de problèmes pour faire évoluer mon programme d'une version de Java à l'autre, contrairement au duo C#/XNA.
Pour le moment, j'ai commencé par suivre ce tutoriel plutôt sympa pour commencer, en l'adaptant au fait que je préfère mettre en place un projet Maven pour m'éviter de copier à chaque fois manuellement des JAR. Pour ce qui est d'importer les JAR qui vont bien avec Maven, les mecs de chez JogAmp ont plutôt bien simplifié le travail avec une page qui explique très rapidement comment utiliser Maven (https://jogamp.org/wiki/index.php/Maven).
Il y a quelques temps, j'avais réussi à afficher la fameuse sphère rouge du tutoriel dont j'ai donné le lien ci-dessus, sauf que je n'y arrive plus car je bloque sur l'erreur suivante au lancement de mon application :
De ce que j'ai pu trouver comme info sur le net, il semble qu'il s'agisse d'un souci d'import de bibliothèque au moment de l'exécution mais impossible de trouver comment la déclarer au lancement de mon application. Je suppose qu'il faut ajouter gluegen-rt-2.3.1.jar (je travaille avec la version 2.3.1 de jogl) puisque c'est ce JAR qui contient jogamp.common.os.MachineDescriptionRuntime. J'ai essayé de regarder dans les arguments comment je pouvais explicitement la déclarer, mais je bloque là-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Exception in thread "main" java.lang.NoClassDefFoundError: jogamp/common/os/MachineDescriptionRuntime at jogamp.nativewindow.jawt.JAWT.<clinit>(JAWT.java:22) at jogamp.nativewindow.jawt.JAWTUtil.getJAWT(JAWTUtil.java:246) at jogamp.nativewindow.jawt.JAWTUtil.<clinit>(JAWTUtil.java:330) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at javax.media.nativewindow.NativeWindowFactory$3.run(NativeWindowFactory.java:338) at javax.media.nativewindow.NativeWindowFactory$3.run(NativeWindowFactory.java:334) at java.security.AccessController.doPrivileged(Native Method) at javax.media.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:334) at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1690) at javax.media.opengl.GLProfile.access$000(GLProfile.java:77) at javax.media.opengl.GLProfile$1.run(GLProfile.java:201) at java.security.AccessController.doPrivileged(Native Method) at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:187) at javax.media.opengl.GLProfile.getProfileMap(GLProfile.java:2246) at javax.media.opengl.GLProfile.get(GLProfile.java:959) at javax.media.opengl.GLProfile.getDefault(GLProfile.java:693) at javax.media.opengl.GLProfile.getDefault(GLProfile.java:704) at windows.MainWindow2.<init>(MainWindow2.java:28) at Application.main(Application.java:14) Caused by: java.lang.ClassNotFoundException: jogamp.common.os.MachineDescriptionRuntime 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) ... 20 more
Pour info, mon pom.xml ressemble à ça :
Ce qui est vraiment dingue, c'est qu'il ne me semble pas avoir touché à la conf de mon application et j'arrivais il y a quelques jours à afficher ma sphère rouge sans problème. Pour la lancer, sous Eclipse, je fais un clic-droit sur mon point d'entrée d'application puis Run as » Java application (c'est d'ailleurs comme ça que je faisais quand j'arrivais encore à afficher la sphère).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <properties> <jogl.version>2.3.1</jogl.version> </properties> <dependencies> <!-- Logging --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- OpenGL --> <dependency> <groupId>org.jogamp.gluegen</groupId> <artifactId>gluegen-rt-main</artifactId> <version>${jogl.version}</version> </dependency> <dependency> <groupId>org.jogamp.jogl</groupId> <artifactId>jogl-all-main</artifactId> <version>${jogl.version}</version> </dependency> <dependency> <groupId>org.jogamp.jogl</groupId> <artifactId>jogl-all</artifactId> <version>2.2.4</version> </dependency> </dependencies>
Merci d'avance pour votre aide sur ce problème a priori de classpath.
Partager