Avatar billede cvpcvp Nybegynder
22. juni 2004 - 08:43 Der er 11 kommentarer og
1 løsning

JNI javah virker ikke

Jeg er ved at lave en Java Native Interface helloWorld applikation.

Jeg har lavet en java fil:

//File: Hello.java
class Hello {
    public native void sayHello();

    static {
        System.loadLibrary("hello");
    }
   
    public static void main(String[] args) {
        Hello h = new Hello();
        h.sayHello();
    }
}

jeg kalder så javac på denne fil:
C:\Download\JNI tutorial\hello>javac Hello.java

Det går fint, den kompilerer som den skal og der ligger nu en fil der hedder Hello.class

Mit problem er nu at jeg ikke kan køre javah uden problemer:

C:\Download\JNI tutorial\hello>javah -jni Hello.class
Error: Class Hello.class could not be found.

Er der nogen der har et svar på hvorfor det ikke virker?
Avatar billede arne_v Ekspert
22. juni 2004 - 09:31 #1
Prøv:

javah -jni Hello
Avatar billede arne_v Ekspert
22. juni 2004 - 09:32 #2
Det er ligesom java kommandoen navnet på klassen ikke navnet på filen der
skal angives.
Avatar billede arne_v Ekspert
22. juni 2004 - 09:32 #3
PS: Har du læst min JNI artikel ?
Avatar billede cvpcvp Nybegynder
22. juni 2004 - 09:57 #4
Ja jeg har læst din artikel... den gennemgår meget det samme som jeg har fundet andre steder på nettet...

har prøvet javah- jni Hello

Det virker heller ikke fejlen er den samme
Avatar billede cvpcvp Nybegynder
22. juni 2004 - 10:01 #5
sorry :
javah -jni Hello :-)
Avatar billede cvpcvp Nybegynder
22. juni 2004 - 10:02 #6
lille stavefejl.... Men det hjælper desværre ikke på resultatet..... :-/
Avatar billede arne_v Ekspert
22. juni 2004 - 10:16 #7
Du bruger ikke pakker ?

Prøv evt.:

javah -jni -classpath . Hello
Avatar billede arne_v Ekspert
22. juni 2004 - 10:16 #8
Hvis det er en pakke hello så:

javah -jni -classpath .. hello.Hello
Avatar billede cvpcvp Nybegynder
22. juni 2004 - 10:24 #9
det der -classpath du skriver... er det nødvendigt?
Jeg har ikke brugt det da jeg kan se du har brugt det da du kompilede, men der var det ikke nødvendigt for mig....
Jeg har sat javas directory i min path miljø variabel. burde det ikke være nok?

Jeg har fået det til at virke nu ved at skrive
javah -jni -classpath . Hello

Så lige 2 spørgsmål inden vi lukker...
Hvorfor -classpath
og hvorfor punktumet
Avatar billede cvpcvp Nybegynder
22. juni 2004 - 10:25 #10
ikke noget alligevel...
Det må være for tidligt i dag... har fattet det....
Du kan lige ligge et svar!!
Avatar billede cvpcvp Nybegynder
22. juni 2004 - 10:25 #11
Og tak for hjælpen....
Avatar billede arne_v Ekspert
22. juni 2004 - 10:32 #12
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester