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.
Ответы
Ответ 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