2015-03-08 22 views
15

Tôi đang cố gắng để chạy các mẫu "Hello World" từ trang web LWJGLLàm thế nào để giải quyết lỗi JNI này khi cố gắng chạy LWJGL "Hello World"?

Từ liên kết này: LWJGL "Getting Started"

Tôi đang cố gắng để làm điều này thông qua dòng lệnh, chỉ vì vậy tôi hiểu được "đằng sau những cảnh "tốt hơn một chút.

tôi đã quản lý để biên dịch mà không cần bất kỳ lỗi nào, nhưng khi tôi cố gắng chạy chương trình tôi nhận được lỗi này:

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 

Bất kỳ ý tưởng?

Trả lời

12

Mục nhập CLASSPATH là một thư mục ở phần đầu của phân cấp gói của tệp .class hoặc tệp .jar. Nếu bạn đang mong đợi ./lib để bao gồm tất cả các tệp .jar trong thư mục đó, nó sẽ không. Bạn phải đặt tên cho chúng một cách rõ ràng.

+0

Cảm ơn bạn. Tôi đã thay đổi cờ thành "java -classpath.; ./ lib/jlwgl.jar" và tôi đã làm cho nó hoạt động. Tôi xin lỗi nhưng tôi vẫn không hiểu TẠI SAO điều này khiến nó không hoạt động đúng. Bạn sẽ rất tử tế để đưa ra một lời giải thích ngắn hơn? – yoonsi

+0

Nếu bạn nhận thấy tôi đã không sử dụng juse ./lib, tôi đã sử dụng ./lib/*.jar (không chắc chắn lý do tại sao tôi chỉ có một cái bình ...) – yoonsi

+2

Lý do rõ ràng là '*. Cú pháp jar' không hoạt động. Tôi không biết ý kiến ​​cuối cùng của bạn có ý nghĩa gì, hoặc những gì nó đề cập đến, nhưng tôi mong đợi * mọi người * có cách cư xử. – EJP

0

Tôi đã gặp vấn đề tương tự khi sử dụng sự phụ thuộc khác nhau, điều đã giúp tôi đặt phạm vi biên dịch.

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>compile</scope> 
    </dependency> 
Các vấn đề liên quan