GNU/Linux >> Tutoriels Linux >  >> Linux

JDK 1.8 sur Linux manque le fichier d'inclusion JNI

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}'


Linux
  1. Une introduction au fichier Linux /etc/fstab

  2. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

  3. Linux – But du répertoire /net ?

  4. Linux – Fusionner /usr/bin et /usr/sbin dans /bin (gnu/linux) ?

  5. Comprendre le fichier de configuration /etc/profile sous Linux

Qu'est-ce que Fstab sous Linux | Une introduction au fichier Linux /etc/fstab

/dev/null sous Linux

Fichiers /proc/cpuinfo et /proc/meminfo sous Linux

Qu'est-ce que le fichier /etc/passwd sous Linux ?

Comprendre le fichier /etc/fstab sous Linux

Dans mon fichier /etc/hosts/ sous Linux/OSX, comment créer un sous-domaine générique ?