2013-11-18 3 views
2

Итак, я боюсь, что мне нужно присоединиться к толпе, стекающейся сюда и спрашивая: «Что случилось с моим кодом?»java.lang.NoClassDefFoundError с LWJGL

Я недавно начал кодирование на Java, и у меня не было этой ошибки, пока я не попытался использовать lwjgl в проекте. Итак, возникает вопрос: что не так с моим JAR, когда я получаю следующее:

java -cp \lib\win32\lwjgl.jar -jar Valor.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/opengl/Display 
    at bin.Disp.createWindow(Disp.java:18) 
    at bin.Thread.gameLoop(Thread.java:13) 
    at Main.main(Main.java:4) 
Caused by: java.lang.ClassNotFoundException: org.lwjgl.opengl.Display 
    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) 
    ... 3 more 

Как есть, я очень смущен этим. Я рассмотрел здесь семь или восемь сообщений об этой самой проблеме, а еще пять или шесть на других веб-сайтах, но ни один из методов, используемых этими людьми, не работает для меня.

В настоящее время моя структура файла:

Valor 
    -Valor.jar 
    lib 
    win32 
     -lwjgl.jar 
     -lwjgl.dll 

Manifest:

Manifest-Version: 1.0 
Main-Class: Main 

Я попытался определения здесь ... путь к классам не работает. Итак, я почти так же смущен, насколько могу. Спасибо за помощь.

Редактировать: Эта ошибка не возникает во время работы в Eclipse, только когда я экспортирую и пытаюсь запустить ее самостоятельно.

ответ

1

Попробуйте запустить его так:

java -cp lib\win32\lwjgl.jar;Valor.jar Main 

Проблема заключается в том, что опция -cp игнорируются если -jar используется.

Альтернативно, вы можете расширить путь к классу, добавив в свой манифест запись Class-Path: и поместив в нее lib\win32\lwjgl.jar.

Class-Path: lib\win32\lwjgl.jar 
0

Выполнив java -cp \lib\win32\lwjgl.jar -jar Valor.jar вы рассказываете Java искать LWJGL классов вблизи корня вашей файловой системы. Видя вашу структуру каталогов, используйте:

java -cp .\lib\win32\lwjgl.jar -jar Valor.jar 

Обратите внимание на . в начале.