Tôi đã nhập điều này vào dấu nhắc lệnh và tôi không chắc chắn lý do tại sao nó không phải là tên lớp hợp lệ cho rằng nó có vị trí trên đĩa và tên lớp đầy đủ. Phiên bản Java hoạt động và tôi đang chạy phiên bản mới nhất của JVM với JDK, cũng là CLASSPATH được cấu hình đúng cách.Lệnh Javah cho các phương thức gốc cung cấp Ngoại lệ
Lớp là thế này:
package JNI;
public class Main {
public native void printTitle();
public static void main(String[] args) {
Main main = new Main();
main.print();
}
public void print(){
System.out.println("The print subroutine has finished.");
}
Và args dòng lệnh là:
C:\Users\USER\Documents\NetBeansProjects\JNI Test Project\build\classes\JNI>javah -jni -classpath "C:\Users\USER\Documents\NetBeansProjects\JNI Test Project\build\classes\JNI" JNI.Main.class
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: JNI.Main.class
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:177)
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:509)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:335)
at com.sun.tools.javah.Main.main(Main.java:46)
Đã xem 10,594 lần, vui lòng mở câu hỏi này! – User3