Wprowadziłem to do wiersza polecenia i nie jestem pewien, dlaczego mówi, że nie jest prawidłową nazwą klasy, biorąc pod uwagę, że ma ona położenie na dysku i pełną nazwę klasy. Wersja Java działa, a ja korzystam z najnowszej wersji JVM z JDK, również CLASSPATH jest poprawnie skonfigurowany.Polecenie Javah dla metod natywnych daje wyjątek
Klasa jest taka:
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.");
}
A argumenty linii poleceń są:
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)
Wyświetlono 10 594 razy, otwórz to pytanie! – User3