web-dev-qa-db-de.com

Wie kann man diesen JNI-Fehler beheben, wenn man versucht, LWJGL "Hello World" auszuführen?

Ich versuche, das Beispiel "Hello World" von der LWJGL-Website auszuführen

Von diesem Link: LWJGL "Getting Started"

Ich versuche dies über die Kommandozeile zu tun, nur damit ich das "hinter den Kulissen" ein bisschen besser verstehe.

Ich habe es geschafft, ohne Fehler zu kompilieren, aber wenn ich versuche, das Programm auszuführen, erhalte ich diesen Fehler:

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

Irgendwelche Ideen?

16
yoonsi

Ein CLASSPATH-Eintrag ist entweder ein Verzeichnis am Anfang einer Pakethierarchie von .class-Dateien oder eine .jar-Datei. Wenn Sie erwarten, dass ./lib Alle .jar-Dateien in diesem Verzeichnis enthält, wird dies nicht der Fall sein. Sie müssen explizit benannt werden.

12
user207421

Ich hatte das gleiche Problem mit unterschiedlichen Abhängigkeiten, was mir geholfen hat, den zu kompilierenden Bereich festzulegen.

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