Cmake не находит JNI, когда JAVA_HOME установлен правильно - PullRequest
0 голосов
/ 21 декабря 2018

Итак, я пытаюсь собрать cmake, чтобы использовать его с Java GUI, который я проектирую.Здесь я подготовил много вопросов и просмотрел несколько учебных пособий о том, как это сделать, и единственная общность заключается в том, что все они, кажется, говорят, что если это не работает, установите JAVA_HOME в расположение JDK.Но я сделал это, и он все еще не работает.

Вывод cmake для java следующий:

--   Java:                          
--     ant:                         /usr/bin/ant (ver 1.10.3)
--     JNI:                         NO
--     Java wrappers:               NO
--     Java tests:                  NO

и, чтобы показать, что у меня установлен JAVA_HOME:

echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64
which java
/usr/bin/java

namei /usr/bin/java
f: /usr/bin/java
 d /
 d usr
 d bin
 l java -> /etc/alternatives/java
   d /
   d etc
   d alternatives
   l java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java
     d /
     d usr
     d lib
     d jvm
     d java-11-openjdk-amd64
     d bin
     - java

echo $PATH
/usr/lib/jvm/java-11-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr      /sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Итак, у меня установлена ​​переменная окружения, и она находит муравей просто отлично, но отказалась найти JNI.У кого-нибудь есть идеи, почему?

1 Ответ

0 голосов
/ 03 января 2019

Похоже, вам нужно вручную указать путь к каталогу включения, в котором находятся файлы заголовков jni, например, /usr/lib/jvm/java-11-openjdk-amd64/include/.

Если в используемом сценарии сборки используется переменная среды JAVA_HOME, он должен выполнить поиск включаемых файлов JNI в каталоге $JAVA_HOME/include.Этот путь AFAIK в настоящее время работает по крайней мере для всех версий Java 8-11.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...