#javafx #codenameone #openjfx #javapackager #azul-zulu
#javafx #codenameone #openjfx #javapackager #azul-zulu
Вопрос:
Я смог использовать ZuluFX 8 с javapackager в Windows. Однако на Mac я получаю эту ошибку:
Изображение приложения Bundler Mac пропущено из-за проблемы с конфигурацией: не удается определить, какой JRE / JDK существует в указанном каталоге среды выполнения.
Совет по исправлению: укажите каталог среды выполнения на один из корней JDK / JRE, каталог Contents / Home этого корня или каталог Contents / Home / jre JDK.
Довольно легко просто переместить пакет в Contents/Home
, но я сомневаюсь, что это сработает, поскольку, похоже, в комплекте с Mac-версией ZuluFX 8 нет JRE. Можно ли обойти это?
Комментарии:
1. Не могли бы вы уточнить, какая команда выдает эту ошибку? Мне удалось успешно запустить javapackager из сборки ZuluFX:
~/fxtest/zulu8.36.0.1-ca-fx-jdk8.0.202-macosx_x64/bin/javapackager -createjar -appclass chapterEleven.SimpleApp -outdir dist -outfile SimpleApp.jar -srcdir build/classes
2. Я использую Ant-скрипт из netbeans для выполнения сборки. Я думаю, что то, что вы сделали, это сгенерировали пакет с другим установленным вами JRE. Откройте этот пакет и загляните внутрь, находится ли внутри JRE от Zulu? Похоже, это также не работает в Windows. Скрипт был запущен, но результирующее приложение по-прежнему использовало Oracle JRE.
Ответ №1:
Довольно легко просто переместить пакет в Contents / Home, но я сомневаюсь, что это сработает, поскольку, похоже, в комплекте с Mac-версией ZuluFX 8 нет JRE.
Из того, что я вижу, я не уверен, что это правильно. Архив ZuluFx 8 для Mac содержит jre
каталог. Я извлек архив в ~/zuluFX
и оттуда создал Contents/Home
каталог, как того требует macOS, и добавил туда символическую ссылку на указанный jre
каталог. Затем я соответствующим образом установил $ JAVA_HOME:
$ pwd /Пользователи /коди/zuluFX $ mkdir -p Содержимое /Главная $ ln -s ../../jre . $ export JAVA_HOME=~/zuluFX
Затем я использовал простой пример javapackager на github, чтобы протестировать его использование (у меня нет других JRES / JDK, установленных на этом компьютере). Примерное приложение просто сбрасывает свойства Java и переменные среды в текстовую область.
Мне пришлось изменить 3build
скрипт в примере, чтобы прокомментировать его попытку переустановки $JAVA_HOME
, но в остальном он успешно собран с помощью следующей javapackager
команды:
javapackager
-deploy -Bruntime=${JAVA_HOME}
-native image
-srcdir .
-srcfiles MacJavaPropertiesApp.jar
-outdir release
-outfile ${APP_DIR_NAME}
-appclass MacJavaPropertiesApp
-name "MacJavaProperties"
-title "MacJavaProperties"
-nosign
-v
Когда я запускаю результирующее приложение, оно сообщает об использовании azul / zulu jre, как и ожидалось:
Комментарии:
1. Спасибо! Оказывается, у меня был открыт каталог zulu 11 (в котором нет JRE), и я пропустил это из-за чертовой размытости шрифта удаленного доступа (это мое оправдание за глупость, и я придерживаюсь его). К сожалению, это все еще не работает для сборки NetBeans, я думаю, нам нужно будет сделать это в командной строке.
2. К сожалению, этот подход упаковывает JDK, а не JRE, все попытки, которые я предпринимал для упаковки JRE, завершились неудачей