Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
jni [2008/04/13 00:55] chappaai |
jni [2008/04/13 01:08] chappaai |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Java JNI i C++ ====== | ====== Java JNI i C++ ====== | ||
+ | Autor : Łukasz Mosdorf G1ISI FIXME | ||
+ | --- | ||
+ | //[[L.Mosdorf[eeeet]stud.elka.pw.edu.pl|Łukasz Mosdorf]] 2008/04/13 01:05// | ||
Ta strona zawiera prosty przykład zastosowania Java Native Interface. Technologia ta pozwala łączyć kod Javy z kodem pisanym pisanym w językach specyficznych dla danej platformy. Potrzeba łączenia Javy z C++ zachodzi np gdy | Ta strona zawiera prosty przykład zastosowania Java Native Interface. Technologia ta pozwala łączyć kod Javy z kodem pisanym pisanym w językach specyficznych dla danej platformy. Potrzeba łączenia Javy z C++ zachodzi np gdy | ||
Linia 21: | Linia 24: | ||
-I"c:\j2sdk1.4.2_17\include\win32" -LD jni_pkg_Jni.cpp -FeJni_lib.dll'' | -I"c:\j2sdk1.4.2_17\include\win32" -LD jni_pkg_Jni.cpp -FeJni_lib.dll'' | ||
</code> | </code> | ||
+ | |||
+ | Jeżeli powyższe polecenia nie dzialaja, należy dodać odpowienie ścieżki do zmiennej srodowiska Windows - PATH. | ||
+ | Polecenie cl polecam uruchamiac z konsoli Visual Studio - nie mamy wtedy problemów z wskazywaniem lokalizacji dodatkowych plików nagłówkowych i bibliotek. | ||
===== Kod Java ===== | ===== Kod Java ===== | ||
Linia 322: | Linia 328: | ||
/* Pobieramy ID pola klasy*/ | /* Pobieramy ID pola klasy*/ | ||
fid = env->GetFieldID(cls, "cppObjPtr", "I"); | fid = env->GetFieldID(cls, "cppObjPtr", "I"); | ||
- | if (fid == NULL) { | + | if (fid == NULL) { |
return (jint)1; /* nie udalo sie zdobyc id pola */ | return (jint)1; /* nie udalo sie zdobyc id pola */ | ||
- | } | + | } |