Возможно ли использовать javapackager в ZuluFX для Mac

#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, завершились неудачей