Sepertinya begitu. #include "jni_md.h"
akan menyertakan file dalam direktori yang sama dengan jni.h
, tetapi ditempatkan di linux
folder.
Dalam versi JDK sebelumnya, tampaknya file dan lainnya ditempatkan di include/linux
folder, tetapi ada symlink ke kedua file di include
.
Jadi Anda bisa membuat symlink ke kedua file:
$ sudo ln -s /opt/jdk1.8.0_11/include/linux/jni_md.h /opt/jdk1.8.0_11/include/jni_md.h
$ sudo ln -s /opt/jdk1.8.0_11/include/linux/jawt_md.h /opt/jdk1.8.0_11/include/jawt_md.h
Edit
Seperti yang dinyatakan dalam komentar oleh Absurd-Mind dan Mikkel, ada juga opsi untuk menambahkan jalur tersebut ke opsi kompiler makefile:
-I$(JAVA_HOME)/include/linux/
Tidak, ini bukan bug. Cara yang tepat untuk mengatasi masalah ini adalah dengan memberikan -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux
opsi penyusun. Dengan cara ini, skrip build Anda tetap portabel.
OP menghadapi masalah di Linux, tetapi jika ada yang menghadapi masalah ini di windows, tambahkan opsi kompiler berikut.
-I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32"
di mana JAVA_HOME menunjuk ke direktori instalasi JDK Anda, biasanya 'C:\Program Files\Java\jdk1.{7|8}.{}_{xx}'