Vraisemblablement. #include "jni_md.h"
inclurait le fichier dans le même répertoire que jni.h
, mais il est placé en linux
dossier.
Dans les versions précédentes du JDK, il semble que ce fichier et un autre aient été placés dans include/linux
dossier, mais il y a des liens symboliques vers les deux fichiers dans include
.
Vous pouvez donc simplement créer des liens symboliques vers les deux fichiers :
$ 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
Modifier
Comme indiqué dans les commentaires d'Absurd-Mind et Mikkel, il existe également la possibilité d'ajouter ce chemin aux options du compilateur makefile :
-I$(JAVA_HOME)/include/linux/
Non, ce n'est pas un bug. La bonne façon de résoudre ce problème est de fournir -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux
options du compilateur. De cette façon, vos scripts de construction restent portables.
L'OP est confronté au problème sous Linux, mais si quelqu'un est confronté à ce problème sous Windows, veuillez ajouter les options de compilation suivantes.
-I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32"
où JAVA_HOME pointe vers votre répertoire d'installation JDK, généralement 'C:\Program Files\Java\jdk1.{7|8}.{}_{xx}'