jni.h: нет такого файла или каталога - PullRequest
29 голосов
/ 24 июля 2011

Я следовал этому учебнику , и на шаге 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.

Ответы [ 3 ]

27 голосов
/ 24 июля 2011

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

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 

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

5 голосов
/ 24 июля 2011

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

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

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

2 голосов
/ 16 января 2015

В 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
...