Как устранить эту ошибку JNI при попытке запустить LWJGL "Hello World"?

Я пытаюсь запустить образец "Hello World" с веб-сайта LWJGL

по этой ссылке LWJGL "начало работы"

Я пытаюсь сделать это через командную строку, просто чтобы я лучше понимал "за кулисами".

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

C:JavaProjectsLearningLWJGL>java -classpath .;./lib/*.jar -Djava.library.path=C:WindowsSystem32 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

какие идеи?

2 ответов


запись CLASSPATH является либо каталогом во главе иерархии пакетов .файлы классов или a .файл jar. Если вы ожидаете ./lib включить все .файлы jar в этом каталоге не будут. Вы должны назвать их явно.


У меня была такая же проблема, используя другую зависимость, что помогло мне установить область для компиляции.

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>compile</scope>
    </dependency>