I'm not asking where I can find it on my own computer, I'm asking where I can get it.
I've done my google homework, and I didn't find the headers in those paths. There wasn't even a Header folder in my /System/Library/Java/JavaVirtualMachines/... and stuff and I don't have a Developer folder under root.
Now I'm pretty sure I don't have those headers installed, I checked the MacOS developer website but I only found some broken links.
Shouldn't OpenJDK or SunJDK provide the jni.h header for MacOS somewhere?
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h
But this depends on your environment.
You can use the java_home
command to find the correct location. See the Oracle docs.
So for example in your makefile you could have:
JAVA_HOME:=`/usr/libexec/java_home`
CPPFLAGS:=-I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/darwin
Note that you also need to add $(JAVA_HOME)/include/darwin
to the include path so it can find jni_md.h
which is the machine-specific part and is included by jni.h
download it and install.
sodino:~ sodino$ java -version java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
3.find 'java' original path and ‘java_home':
sodino:~ sodino$ which java /usr/bin/java sodino:~ sodino$ ls -n /usr/bin/java lrwxr-xr-x 1 0 0 74 Sep 30 2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java sodino:~ sodino$/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
get ‘include’ folder and jni.h
now you will find a ‘include’ folder with in ‘/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home’, and open it ‘jni.h’ will be found.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With