【问题标题】:How to distribute Java application 7.0 and above on Mac 10 and above?如何在 Mac 10 及更高版本上分发 Java 应用程序 7.0 及更高版本?
【发布时间】:2015-03-04 20:25:27
【问题描述】:

我需要在 Mac 上运行我的 Java 应用程序。我可以找到这个tutorial 来使用 Xcode 来捆绑应用程序。本教程要求读者访问 Jar Bundle 应用程序,但我在 /Developer/Applications/Java Tools/ 文件夹中找不到它。

在那之后我遇到了这个answer,它似乎提供了一个很好的方法。

但是,我想知道是否有比上面提到的更好的方法来完成这项工作。

【问题讨论】:

标签: java xcode macos jar


【解决方案1】:

Mac OS X 实用程序 Jar BundlerIcon ComposerPacakgeMaker 均已弃用。即使是各种 AppBundler 项目似乎也注定要消失。

未来的路看起来是 javapackager,它包含在 JDK 中。

-deploy -native pkg 选项会将 Java 应用程序(可执行 JAR)转换为本机 macOS 安装程序。

示例命令:

$ jar cmf MainClass.txt ShowTime.jar *.class
$ javapackager -deploy -native pkg -srcfiles ShowTime.jar \
   -appclass ShowTime -name ShowTime \
   -outdir deploy -outfile ShowTime -v

输出:deploy/bundles/ShowTime-1.0.pkg

我把详细教程发到了:
centerkey.com/mac/java

无论好坏,javapackager 会捆绑 JRE,生成的 .pkg 文件超过 60MB。

【讨论】:

  • 是否可以使用 javapackager 创建一个安装程序来安装除 java 应用程序之外的一些其他资源,如驱动程序,应用程序需要工作?
  • 是的,但我没试过。我相信您想使用 -srcdir 标志来包含包含所需资源的文件夹。该标志设置“要打包的文件的基本目录。”或者,您可以在运行 javapackager 之前将资源放入 JAR 文件中。
【解决方案2】:

正如 Dem 所说,我是这样使用 javapackager 的:

打开终端并转到 cd Desktop/ 这样的工作文件夹 并输入;

javapackager \
> -deploy \
> -title AppTitle \
> -name AppName \
> -appclass your.app.class \
> -native dmg \
> -outdir ~/YourOutputDir \
> -outfile out \
> -srcfiles your.jar

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2016-03-28
    • 2015-05-10
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 2019-04-21
    相关资源
    最近更新 更多