web-dev-qa-db-ja.com

LWJGL "Hello World"を実行しようとしたときに、このJNIエラーを解決する方法は?

LWJGL Webサイトからサンプル「Hello World」を実行しようとしています。

このリンクから: LWJGL "Getting Started"

私はコマンドラインからこれをやろうとしているので、「舞台裏」を少しよく理解するようにしています。

エラーなしでコンパイルできましたが、プログラムを実行しようとするとこのエラーが発生します。

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

何か案は?

16
yoonsi

CLASSPATHエントリは、.c​​lassファイルのパッケージ階層の先頭にあるディレクトリ、または.jarファイルのいずれかです。 ./libは、そのディレクトリ内のすべての.jarファイルを含めますが、含めません。明示的に名前を付ける必要があります。

12
user207421

異なる依存関係を使用して同じ問題が発生し、コンパイルするスコープを設定するのに役立ちました。

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