如何解决尝试运行LWJGL“Hello World”时的此JNI错误?

2022-09-03 07:42:05

我正在尝试从LWJGL网站运行示例“Hello World”

来自此链接: 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

有什么想法吗?


答案 1

CLASSPATH 条目可以是位于.class文件的包层次结构的开头的目录,也可以是.jar文件。如果您希望在该目录中包含所有.jar文件,则不会。您必须明确命名它们。./lib


答案 2

我遇到了同样的问题,使用不同的依赖性来帮助我设置编译范围。

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

推荐