Domanda

Sto cercando di trasformare il mio progetto JoGL in un file jar . Cosa sto sbagliando?

Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GL
EventListener
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access
META-INF\MANIFEST.MF
gluegen-rt.jar
jogl.jar
chartest$1.class
chartest.class
gluegen-rt.dll
jogl.dll
jogl_awt.dll
jogl_cg.dll
test.png
(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) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLEventListener 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) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 12 more Could not find the main class: chartest. Program will exit.

Contenuto del file JAR:

<*>
È stato utile?

Soluzione

Puoi controllare il tuo percorso di classe. Dovrebbe includere almeno

  • Il file jar con le classi che hai scritto
  • Supporta vasetti con classi come javax.media.opengl (jogl.jar?)

Prova a posizionare tutti questi vasi nel tuo percorso di classe ed eseguilo.

Altri suggerimenti

il file jar di Jogle è nel tuo percorso di classe?

Vedo che hai incluso i vasetti stessi nel tuo barattolo ... questo purtroppo non funzionerà fuori dalla scatola.

O tira fuori i vasetti e poi inseriscili nel tuo percorso di classe (che può far parte anche del tuo manifest) o scrivi il tuo proprio classloader ...

http://java.sun.com/docs /books/tutorial/deployment/jar/downman.html

Questo è il motivo per cui ha funzionato per William e non per te ... ha preso il jogl da qualche altra parte e non ha usato quello nel tuo vaso.

Passa a Netbeans per creare il tuo file jar. Trovo che usare altre librerie all'interno dei miei progetti, inclusi i file dll, sia il migliore per usare qualcosa come Netbeans o semplicemente impacchettarlo con Maven.

mvn clean package

Devi essere esperto di xml se vuoi usare maven per impacchettare tutti i tuoi file jar.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top