2011-07-24 19 views
25

He estado siguiendo this tutorial, y en el paso 5, estoy consiguiendo la siguiente salida de GCC:jni.h: No existe el fichero o directorio

HelloWorld.c:1:17: error: jni.h: No such file or directory 
    In file included from HelloWorld.c:3: 
    HelloWorld.h:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ 
    HelloWorld.c:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ 

sé que incluyen directorios varían de un sistema a otro , así que traté de adaptar el comando en consecuencia, pero parece que no puedo encontrar el directorio correcto en mi sistema. Estoy usando Ubuntu 10.04LTS.

+6

+1 por 'no importa cuán simple, debería ser beneficioso para los demás también. –

Respuesta

24

abrir un tipo de terminal y:

locate jni.h 

Eso debe decirle donde cada archivo llamado jni.h está en el sistema. Estoy en Ubuntu 11.04, y se encuentra en:

/usr/lib/jvm/java-6-openjdk/include/jni.h 
/usr/lib/jvm/java-6-sun-1.6.0.26/include/jni.h 

También puede ser necesario para obtener de los repositorios:

sudo apt-get install openjdk-6-jdk 

debe hacer el truco si no lo tiene instalado.

+3

Ahora que tengo fonud jni.h, ¿qué debo hacer para terminar mi bulid? Agregarlo a mi camino? – bheussler

+0

Instale 'sudo apt-get install openjdk-8-jdk', pero aún' locate jni.h' no me da nada – Daniel

5

jni.h vive con JDK. Para mí es: jdk1.6.0_25/include/.

Y de forma predeterminada, no creo que Ubuntu tenga JDK con bibliotecas de desarrollo, así que descargue latest JDK version de Oracle e instálelo en algún lugar.

O puede instalar openjdk como se sugiere @Leif si funciona en 10.04 LTS. Aunque, personalmente, prefiero el de Sun/Oracle.

1

En Ubuntu 14.04 de ejecución:

sudo apt-get install openjdk-7-jdk openjdk-7-jre-lib 

Ahora, usted tiene una encabezados en/usr// jvm/java-7-OpenJDK amd64 lib/include

Para OpenJDK 6:

sudo apt-get install openjdk-6-jdk openjdk-6-jre-lib 
Cuestiones relacionadas