java - 如何使用 Javapackager 8、el Capitan 将 Jar 文件转换为 DMG

标签 java osx-elcapitan javapackager

我从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/

相关文章:

windows - 如何使用 javapackager 生成模块化 Java 应用程序的可执行文件?

java - 找到对集合 org.hibernate.HibernateException 的共享引用

java - 静态方法调用另一个静态方法,对象引用作为参数 :Is It Thread Safe?

java - Postgres hstore 转换工作错误

macos - 在没有密码提示的情况下无法保存文件 - Sublime Text 3

git - 无法在 OS X El Capitan 中启动 Git

mysql - 'rails server'在osx el capitan上返回mysql 5.7.13错误

java - 为 Java 应用程序打包 JRE

java - 如何用java连接MQ并发送数据

java - 使用 Javapackager 自定义 .app 包的资源目录