尝试 运行 LWJGL "Hello World" 时如何解决此 JNI 错误?
How to resolve this JNI error when trying to run LWJGL "Hello World"?
我正在尝试 运行 来自 LWJGL 网站的示例 "Hello World"
来自这个link:LWJGL "Getting Started"
我正在尝试通过命令行执行此操作,以便我更好地理解 "behind the scenes"。
我成功地编译了,没有任何错误,但是当我尝试 运行 程序时,我收到了这个错误:
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>
我正在尝试 运行 来自 LWJGL 网站的示例 "Hello World"
来自这个link:LWJGL "Getting Started"
我正在尝试通过命令行执行此操作,以便我更好地理解 "behind the scenes"。
我成功地编译了,没有任何错误,但是当我尝试 运行 程序时,我收到了这个错误:
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>