【问题标题】:Convert .jar to an OSX executable?将 .jar 转换为 OSX 可执行文件?
【发布时间】:2017-09-09 16:28:44
【问题描述】:

我制作了一个 Java 应用程序,我想在 Windows、OSX 和 Linux 上分发它而不分发 jar 文件。我使用出色的 Windows exe 包装器 http://launch4j.sourceforge.net/ 创建了一个完整的 .exe 文件,其中包含不会吓到 Windows 用户的图标。

有没有可以用于 OSX/Unix 的类似包装器?一个重要的考虑因素是我想在可执行文件上拥有自己的图标(尤其是对于 mac 用户)。

谢谢!

【问题讨论】:

    标签: java


    【解决方案1】:

    是的,在 Mac OS X 上,有一个名为 Jar Bundler 的程序会在您安装免费的(假设您已经拥有 Mac OS X 的副本)Xcode Developer Tools 时安装,它允许您在其中捆绑 JAR 文件与其他应用程序一样,带有漂亮闪亮图标的原生 Mac OS X“*.app”应用程序包。

    更新
    JAR bundler 在更高版本的 OS X 上不存在。作为一种解决方法,您可以手动创建一个调用 Java 的 OS X 项目。或者,有多种构建系统扩展可以做类似的事情;例如,Gradle 的 gradle-macappbundle 插件将创建这样一个包装应用程序。

    【讨论】:

    • 自 Lion 10.8.2 (stackoverflow.com/questions/15375490/…) 以来,Jar Bundler 不再是 Xcode 开发者工具的一部分
    • 是否有制作windows exe安装程序的gradle方式? IE。是否有用于 gradle 的 macAppBundle 插件的 windows 模拟?
    【解决方案2】:

    JarBundler 已过时,但有一个(更好的)官方替代品:javapackager 工具。

    对于 OSX,这里有一个关于如何从 java 创建 DMG 的简单、解释清楚的分步教程:http://centerkey.com/mac/java/。对于其他平台,您只需在 javapackager 中使用适当的开关修改示例即可。

    【讨论】:

    • 看起来 javapackager 正在将 JRE 与包捆绑在一起。可以排除JRE吗?
    • 我认为省略 JRE 是个坏主意。您不知道目标机器是否有 JRE,如果有,则可能与打包的 java 应用所需的 java 版本不兼容。
    【解决方案3】:

    如果您没有 Mac 来构建它(或想要将其集成到现有构建链中),您可能需要查看 OS X Application Bundle Plugin for Maven

    这将(如果在 Linux 或 Windows 上运行)创建一个将解压缩为适当的 Mac 应用程序的 zip。如果你在 Mac 上运行 Maven,它也可以制作 DMG。

    【讨论】:

      【解决方案4】:

      您还可以使用 JarBundler Ant 任务打包您的应用程序:

      http://informagen.com/JarBundler

      <jarbundler dir="release"
              name="MyApp"
              mainclass="org.foo.myapp.Main" 
              jar="myapp.jar" />
      

      【讨论】:

        【解决方案5】:

        Github 用户 Jorl17 制作了一个名为 jar2app 的出色 Python 脚本,它使用一个简单的命令即可完成此任务。它甚至可以让您自定义应用图标。

        https://github.com/Jorl17/jar2app

        只需安装它,按照说明进行操作,即可获得 .app 文件。

        【讨论】:

        • 开箱即用,没有任何凹凸。谢谢:)
        • 无法安装,有什么建议吗?按照步骤操作,但还是做不到
        猜你喜欢
        • 2017-11-09
        • 2021-07-28
        • 2020-07-10
        • 2014-01-17
        • 1970-01-01
        • 2021-03-11
        • 1970-01-01
        • 2021-11-22
        • 2010-11-14
        相关资源
        最近更新 更多