-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Jan Kąkol edited this page Dec 3, 2015
·
5 revisions
#Welcome to the JVM wiki!
- Tworzymy klasę, która posiada natywną metodę.
- Kompilujemy z java oraz javah - ważne, żeby robić to z poziomu src i z pełną nazwa kwalifikowaną (np.
com.jankkol.jni.HelloWorld
) - Tworzymy plik żródłowy c. Importujemy nasz wygenerowany header.
- Implementujemy metody (np
JNIEXPORT void JNICALL Java_Hello_sayHello (JNIEnv *env, jobject obj)
) - Tworzymy biblioteke libnazwa.so za pomocą polecenia
g++ -o libhello.so -I/opt/java/jdk1.8.0_65/include/ -fPIC -shared -lc hello.c
. - Odpalamy naszą klasę javy z parametrem
-Djava.library.path= sciezka_do_lib
- dla żródeł C - compileC.sh z nazwą pliku w parametrze np.
compileC.sh hello
- dla żródeł C++ - compileCPP.sh z nazwą pliku w parametrze np.
compileCPP.sh hello
- -XX:+PrintFlagsFinal - wyświetla wszystkie flagi jvm(bez eksperymentalnych)
- -Djava.compiler=NONE - flaga ustawia JIT compiler (NONE - brak kompilatora)