macOS: встраивание OpenJDK 11 в приложение по-прежнему вызывает предупреждение Java 6 - PullRequest
0 голосов
/ 17 декабря 2018

У нас есть кроссплатформенное приложение, которое состоит из пользовательского интерфейса java swing и большого количества нативного кода.Java и нативный код общаются друг с другом с помощью JNI.Мы компилируем и ссылаемся на java 11. Это прекрасно работает на windows и linux.

На Mac в настоящее время мы использовали старую Apple Java 6. Мы хотим избавиться от этой зависимости и от того, куда перейти на openJDK 11 для всех.платформ.Кажется, все работает нормально.Мы видим, что наше приложение запускает нашу встроенную версию Java 11 и что некоторый Java-код уже выполняется, но через некоторое время появляется предупреждение Apple «Пожалуйста, установите Java SE 6».

Как это можно предотвратить?Когда Apple java установлена, приложение работает и работает с использованием java 11, а не java 6.

Что здесь проверяет macOS - почему он все еще нуждается в java 6?

Мы находим java 11версию, которую мы внедрили с нашим собственным кодом и динамически загружаем jvm dylib и, наконец, вызываем JNI_CreateJVM () для создания экземпляра jvm, а затем мы переходим к некоторому java-коду, который начинает выполняться, но через некоторое время страшно «Пожалуйста, установите предупреждение Java SE 6"выскакивает.

Я тестирую с macOS Sierra / High Sierra и Mojave.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 17 декабря 2018

По какой-то причине вам нужно загрузить libjli.dylib вместо libjvm.dylib, чтобы избежать предупреждения Java 6 в macOS.

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