nazareno - jni java ejemplos
cómo hacer que se encuentre jni.h? (6)
Tienes que decirle a tu compilador dónde está el directorio de inclusión. Algo como esto:
gcc -I/usr/lib/jvm/jdk1.7.0_07/include
Pero depende de tu archivo MAKE.
En Ubuntu 12.04, tengo jdk7 de sun / oracle instalado. Cuando locate jni.h
, imprime varias ubicaciones
/usr/lib/jvm/java-6-openjdk-amd64/include/jni.h
/usr/lib/jvm/jdk1.7.0_07/include/jni.h
...
En el archivo de encabezado generado por JDK, hay include <jni.h>
, y actualmente se queja
fatal error: jni.h: No such file or directory.
En mi Makefile
, no hay especificaciones de ubicaciones donde jni.h
es. Y estoy preguntando si es posible configurar cierto parámetro del sistema para hacer que se jni.h
ruta de jni.h
(por ejemplo, /usr/lib/jvm/jdk1.7.0_07/include/jni.h
) al compilarse.
Usa el siguiente código:
make -I/usr/lib/jvm/jdk*/include
donde jdk * es el nombre del directorio de su instalación de jdk (por ejemplo, jdk1.7.0).
Y no habría una solución para todo el sistema ya que el nombre del directorio sería diferente con diferentes compilaciones de JDK descargadas e instaladas. Si desea una solución automatizada, incluya todos los comandos en una sola secuencia de comandos y ejecute dicha secuencia de comandos en la Terminal.
La instalación del kit de desarrollo OpenJDK (JDK) debería solucionar su problema.
sudo apt-get install openjdk-X-jdk
Esto debería permitirle compilar sin problemas.
Por lo general, defino mi variable JAVA_HOME de la siguiente manera:
export JAVA_HOME=/usr/lib/jvm/java/
Ahí están los archivos de inclusión necesarios. A veces agrego lo siguiente a mi .barshrc cuando compilo muchas cosas que lo necesitan.
Necesita ambos archivos jni.h
y jni_md.h
, prueba esto
gcc -I/usr/lib/jvm/jdk1.7.0_07/include /
-I/usr/lib/jvm/jdk1.7.0_07/include/linux filename.c
Esto incluirá tanto los archivos JNI amplios como los necesarios para Linux
Establecer JAVA_INCLUDE_DIR donde se encuentra jni.h debería resolver su problema (el ajuste de CPPFLAGS no funcionó para mí)
Suponiendo que sea / usr / lib64 / java / include;
export JAVA_INCLUDE_DIR=/usr/lib64/java/include