Pergunta

Eu estou tentando transformar meu projeto Jogl em um arquivo jar. O que estou fazendo de errado?

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$000(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.

Conteúdo do arquivo JAR:

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
Foi útil?

Solução

Você pode verificar o seu classpath. Ela deve incluir pelo menos

  • O arquivo jar com aulas que você escreveu
  • Apoio frascos com classes como javax.media.opengl (jogl.jar?)

Tente colocar todos esses frascos no classpath e executá-lo.

Outras dicas

é o arquivo jar Jogle no seu classpath?

Eu vejo você incluiu os próprios frascos em seu frasco ... isso, infelizmente, não wil trabalhar fora da caixa.

De qualquer obter os frascos fora lugar, então no seu classpath (que podem ser parte do seu manifesto também) ou escreve sua própria classloader ...

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

É por isso que ele trabalhou para William e não para você ... ele conseguiu o JOGL de algum outro lugar e não usar o um dentro do seu jar.

Mudar para Netbeans para construir o seu arquivo jar. Acho utilizando outras bibliotecas dentro dos meus projetos, incluindo arquivos DLL o seu melhor para usar algo como Netbeans ou apenas empacotá-lo com Maven.

mvn clean package

Você precisa ser bem versado em xml que se você quiser usar o Maven para empacotar todos os seus arquivos jar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top