Подтвердить что ты не робот

Jni.h: Нет такого файла или каталога

Я следил за этот учебник, и на шаге 5 я получаю следующий вывод из GCC:

    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’

Я знаю, что он включает в себя каталоги различаются от системы к системе, поэтому я попытался соответствующим образом адаптировать команду, но я не могу найти правильный каталог в своей системе. Я использую Ubuntu 10.04LTS.

4b9b3361

Ответ 1

Откройте терминал и введите:

locate jni.h

Это должно сказать вам, где каждый файл с именем jni.h находится в вашей системе. Я нахожусь на ubuntu 11.04, и он находится по адресу:

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

Вам также может понадобиться получить его из репозиториев:

sudo apt-get install openjdk-6-jdk 

должен сделать трюк, если у вас его нет.

Ответ 2

jni.h живет с JDK. Для меня это: jdk1.6.0_25/include/.

И по умолчанию я не думаю, что Ubuntu будет иметь JDK с библиотеками разработки, поэтому загрузите последнюю версию JDK из Oracle и установите ее где-нибудь.

Или вы можете установить openjdk как @Leif, если он работает на 10.04 LTS. Хотя, я лично, предпочитаю один из Sun/Oracle.

Ответ 3

В Ubuntu 14.04:

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

Теперь у вас есть заголовки в /usr/lib/jvm/java -7-openjdk-amd64/include

Для OpenJDK 6:

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