Ответ 1
Запись CLASSPATH является либо каталогом во главе иерархии пакетов .class файлов, либо файлом .jar. Если вы ожидаете, что ./lib
будет содержать все файлы .jar в этом каталоге, это не произойдет. Вы должны указать их явно.
Я пытаюсь запустить образец "Hello World" с веб-сайта LWJGL.
С помощью этой ссылки: LWJGL "Начало работы"
Я пытаюсь сделать это с помощью командной строки, так что я немного понимаю "за кулисами".
Мне удалось скомпилировать без каких-либо ошибок, но когда я пытаюсь запустить программу, я получаю эту ошибку:
C:\JavaProjects\LearningLWJGL>java -classpath .;./lib/*.jar -Djava.library.path=C:\Windows\System32 HelloWorld
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/glfw/GLFWKeyCallback
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.lwjgl.glfw.GLFWKeyCallback
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)
... 7 more
Любые идеи?
Запись CLASSPATH является либо каталогом во главе иерархии пакетов .class файлов, либо файлом .jar. Если вы ожидаете, что ./lib
будет содержать все файлы .jar в этом каталоге, это не произойдет. Вы должны указать их явно.
У меня была одна и та же проблема с использованием разных зависимостей, что помогло мне - установить область для компиляции.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>compile</scope>
</dependency>