java - descargar - JDK 1.8 en Linux falta el archivo de inclusión de JNI
jdk 6 32 bits (2)
Así parece. #include "jni_md.h"
incluiría el archivo en el mismo directorio que jni.h
, pero se coloca en la carpeta de linux
.
En versiones anteriores de JDK, parece que el archivo y otro se include/linux
carpeta include/linux
, pero hay enlaces simbólicos a ambos archivos en include
.
Así que puedes crear enlaces simbólicos a ambos archivos:
$ 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
Editar
Como se indica en los comentarios de Absurd-Mind y Mikkel, también existe la opción de agregar esa ruta a las opciones del compilador de makefile:
-I$(JAVA_HOME)/include/linux/
Estoy tratando de compilar el siguiente proyecto:
https://github.com/entropia/libsocket-can-java
Siempre me sale este mensaje de error? ¿Alguien sabe cómo solucionarlo, es posiblemente un error en JDK 1.8.0.11 en Linux (x64 Debian Wheezy)?
In file included from jni/de_entropia_can_CanSocket.h:2:0,
from jni/cansocket.cpp:23:
/opt/jdk1.8.0_11/include/jni.h:45:20: fatal error: jni_md.h: No such file or directory
#include "jni_md.h"
^
No, esto no es un error. La forma correcta de resolver este problema es proporcionar las opciones del compilador -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux
. De esta manera sus scripts de compilación permanecen portátiles.
El OP se enfrenta al problema en Linux, pero si alguien se enfrenta a este problema en Windows, agregue las siguientes opciones del compilador.
-I"%JAVA_HOME%/include" -I"%JAVA_HOME%/include/win32"
donde JAVA_HOME apunta a su directorio de instalación de JDK, generalmente ''C:/Program Files/Java/jdk1.{7|8}.{}_{xx}''