С++ JNI хочет установить Mac Legacy JRE6

51
3

У меня установлен JDK8, и для моего JAVA_HOME установлен правильный путь. Я могу использовать Java без каких-либо проблем. Однако, когда я пытаюсь запустить Java-код из C++, он предлагает мне установить действительно старую версию JRE6.

В моем коде у меня есть:

JavaVMInitArgs vm_args;
vm_args.version = JNI_VERSION_1_8;

поэтому странно, что запрашивается JRE6. Как я могу C++ JNI использовать мою существующую установку JDK8?

JDK8 is installed, but JRE6 is promoted to install.

спросил(а) 2016-09-14T08:39:00+03:00 3 года, 6 месяцев назад
1
Решение
62

По какой-то причине это происходит, когда код использует libjvm.dylib. Там также libjli.dylib который имеет те же функции, но пропускает диалог JRE 6. Я никогда не потрудился проверить, почему это так.

Если вы связываетесь с -ljvm, замените его на -ljli. Если вы используете dlopen вместе с dlsym просто используйте другое имя библиотеки.

ответил(а) 2016-09-14T15:33:00+03:00 3 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема