У нас есть кроссплатформенное приложение, которое состоит из пользовательского интерфейса 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.
Спасибо за вашу помощь!