GNU/Linux >> Tutoriales Linux >  >> Linux

Falta el archivo de inclusión JNI de JDK 1.8 en Linux

Así parece. #include "jni_md.h" incluiría el archivo en el mismo directorio que jni.h , pero se coloca en linux carpeta.

En versiones anteriores de JDK, parece que ese archivo y otro estaban ubicados en include/linux carpeta, 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 del archivo MAKE:

-I$(JAVA_HOME)/include/linux/

No, esto no es un error. La forma correcta de resolver este problema es proporcionar -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux opciones del compilador. De esta manera, sus scripts de compilación seguirán siendo portátiles.

El OP enfrenta el problema en Linux, pero si alguien enfrenta 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, normalmente 'C:\Program Files\Java\jdk1.{7|8}.{}_{xx}'


Linux
  1. Ejemplo de archivo /etc/services en Linux

  2. Comprender el archivo de configuración /etc/profile en Linux

  3. ¿Cómo crear un archivo en Linux desde la ventana de terminal?

  4. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

  5. unix:///var/run/supervisor.sock no hay tal archivo

¿Qué es Fstab en Linux? Una introducción al archivo Linux /etc/fstab

/dev/null en Linux

Archivos /proc/cpuinfo y /proc/meminfo en Linux

¿Qué es el archivo /etc/passwd en Linux?

Comprender el archivo /etc/fstab en Linux

hacer eco o imprimir /dev/stdin /dev/stdout /dev/stderr