我从here复制了这个例子,但我上类时遇到困难。
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
当我使用它时,我收到以下消息:
Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "DMG Installer" (dmg) failed to produce a bundle.
最佳答案
我发现了问题。如果您运行 Javapackager,完成后它会使输出 DMG 打开:下次尝试时,它会失败,因为它无法创建 DMG(它已经打开!)。
如果您在 Finder 中查找,您会在左侧找到标有“设备”的部分:任何打开的 DMG 都会显示在此处。您可以通过单击它们旁边的弹出符号来关闭它们。
我遇到的另一个问题是我错误地认为 Textedit 是一个文本编辑器,并且适合编辑我用来运行 javapackager 的 shell 脚本。它不是。它偷偷地将破折号更改为连字符(它们看起来相同,但 javapackager 不喜欢它们),如果您使用双引号,它会将每对中的第二个更改为反引号。 Java 打包器也不喜欢这些。
关于java - 如何使用 Javapackager 8、el Capitan 将 Jar 文件转换为 DMG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36576282/