Hej,
for det første, hvilken C++ kompiler bruger du? Disse svar er møntet på GNU gcc kompileren, det afviger formentligt en smule hvis du bruger noget andet (Borland/Microsoft etc.)
spm1:
Når du inkluder med <> brackets leder kompileren ofte kun nogle prædefinerede stier, og derfor finder den ikke jni.h filen, da den jo følger med Java distributionen og ikke din C++ kompiler.
I gcc skal du derfor kompile med denne option: -I<path til java/include bibliotek>. Bemærk at jni.h filen inkluderer filen jni_md.h som ligger i java/include/<platform>/ og derfor skal dette bibliotek også inkluderes med en -I.
spm2:
Der er ingen problemer ved at bruge 1.4.1 i stedet for 1.3.1
Du kan risikere at din kompiler brokker sig over at den ikke kender datatypen __int64 som optræder i inklude filerne. Hvis det sker kan du bare sætte -D__int64="long long" på når du kompiler din C++ kode.
Jeg leger med native metoder og følger i den forbindelse sun's tutorial (http://java.sun.com/docs/books/tutorial/native1.1/stepbystep/index.html).
Jeg har skrevet java-koden, genereret en .header fil og skrevet C++ koden. Men min cpp fil kan ikke kompileres. Problemet er tilsyneladende en #include <jni.h> statement. jni.h filen kan ikke findes! jeg har så prøvet med en komplet path til jni.h filen som ligger i java's include folder, men uden succes. Det giver afledte problemer.
spm: Når man include'r med <filnavn> hvor leder C++ linkeren så ? og kan man selv redigere/opsætte paths ?
spm: Jeg bruger Java 1.4.1 - er der nogen kendte problemer med JNI og/eller ting som skal gøres anderledes end ved 1.3.1 ?
Andre bud på forsøg ??