Как конвертировать файл JAR в DMG с помощью Javapackager 8, el Capitan
Я скопировал этот пример отсюда, но у меня проблемы с работой.
mkdir -p package/macosx
cp you_icon_app.icns package/macosx
jdk=$(/usr/libexec/java_home)
$jdk/bin/javapackager -version
$jdk/bin/javapackager -deploy -native dmg \
-srcfiles you_app.jar -appclass you_app_name -name you_app_name \
-outdir deploy -outfile you_app_name -v
cp deploy/bundles/you_app_name-1.0.dmg you_app_name-installer.dmg
Когда я использую его, я получаю это сообщение:
Исключение в потоке "main" com.sun.javafx.tools.packager.PackagerException: Ошибка: программе "DMG Installer" (dmg) не удалось создать пакет.
1 ответ
Я нашел проблему. Если вы запустите Javapackager, по завершении он оставит выходной DMG открытым: при следующей попытке произойдет сбой, поскольку он не может создать DMG (он уже открыт!).
Если вы загляните в Finder, вы найдете раздел, озаглавленный "Устройства" слева: все открытые DMG появятся здесь. Вы можете закрыть их, щелкнув по значку "Извлечь" рядом с ними.
Другая проблема, с которой я столкнулся, заключается в том, что я ошибочно предположил, что Textedit был текстовым редактором и подходит для редактирования скрипта оболочки, который я использовал для запуска javapackager. Это не. Он хитро меняет дефисы на дефисы (они выглядят одинаково, но javapackager их не любит), и если вы используете двойные кавычки, он заменяет вторую часть каждой пары на обратную кавычку. Java упаковщик тоже не любит.