Java versions prior Java 8 requires native code to be in a shared library, but I\'ve read that with Java 8 it\'s possible to use static linked libraries with JNI. I have sea
The Java 8 enhancement https://openjdk.java.net/jeps/178 is meant for the JVM.
Given two files:
Create libnative.so:
javac Main.java
javah Main
gcc -c Main.c
gcc -c Main.c -I /home/dx/.sdkman/candidates/java/current/include/linux -I /home/dx/.sdkman/candidates/java/current/include
gcc -shared -o libnative.so Main.o
Create libnative.a:
ar -cvq libnative.a Main.o
For each libnative.a, libnative.so test run via:
java -Djava.library.path=. Main
Result:
libnative.solibnative.aThis proves that 178 is for the JVM.
References: