Вопрос

Я пытаюсь превратить свой проект JoGL в jar файл.Что я делаю не так?

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.

Содержимое файла 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
Это было полезно?

Решение

Вы можете проверить свой путь к классу.Она должна включать по крайней мере

  • Файл jar с классами, которые вы написали
  • Поддержка jars с такими классами, как javax.media.opengl (jogl.jar ?)

Попробуйте поместить все эти банки в свой classpath и запустить его.

Другие советы

это файл Jogle JAR в вашем пути к классам?

Я вижу, вы сами включили банки в свою банку ... это, к сожалению, не получится из коробки.

Либо достаньте банки, затем поместите их в путь к классам (это также может быть частью вашего манифеста) или напишите собственный загрузчик классов ...

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

Вот почему это сработало для Уильяма, а не для тебя ... он взял джогл откуда-то еще и не использовал тот, что в твоей банке.

Переключитесь на NetBeans, чтобы создать свой JAR-файл. Я нахожу использование других библиотек внутри моих проектов, включая файлы dll, лучше всего использовать что-то вроде Netbeans или просто упаковать его с maven.

mvn clean package

Вам нужно хорошо разбираться в xml, если вы хотите использовать maven для упаковки всех ваших jar-файлов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top