【问题标题】:I made a Mac OSX app from .jar. Does end-user need Java?我从 .jar 制作了一个 Mac OSX 应用程序。最终用户是否需要 Java?
【发布时间】:2015-11-11 18:24:22
【问题描述】:

我有一个打开计算器的 jar 文件。我使用名为JarSplice 的工具在我的Macintosh 上变成了一个.app。我的应用程序在我的计算机上运行良好,但我想知道该应用程序是否适用于没有 Java 的最终用户?我自己会对此进行测试,但我无法访问已卸载 Java 的计算机。提前感谢。

【问题讨论】:

    标签: java macos executable


    【解决方案1】:

    你遇到了一个非常棘手的队友!

    首先幸运的是,您可以将 jre 与您的应用程序一起移植(oracle java 为您提供license)。棘手的部分是为您的应用程序构建dmg。也就是说,不仅要移植 jre,而且还要以与任何其他 mac 应用程序一样工作的方式构建它。包括权限。相信我,要做到这一点非常困难。

    以下是选项:

    • 采用 Javafx 方式。 Javafx 原生支持轻松构建 dmg 文件。这特别好,因为 javafx ant 具有让您构建 dmg 作为其构建系统的一部分的任务。阅读本文以了解more。您可以设置图标,携带您想要的任何系统依赖项(dllso)。设置系统属性等。绝对让你感觉很原生。
    • 其他非专业但工作的方式。要求用户下载java。您可以提供一个简单的应用程序,该应用程序显示一个要求用户下载的弹出窗口。完成后,他可以双击 jar 使其运行。

    我会通过 javafx 方式。我们有两个用于 windows 和 mac 的桌面应用程序正在生产中,我们通过第一种方式构建它

    【讨论】:

    • Javafx 是一个库,我必须在交付它之前制作我的 GUI。抱歉这个菜鸟问题。
    • 是的。它是秋千的替代品。图形用户界面工具包。如果你没有 gui,另一个 hack 是:制作一个 javafx 应用程序但没有任何 UI。即让没有用户界面并完成您的任务。这样您就可以使用 javafx ant 并因此生成构建。
    • 或者如果您的应用程序是一个swing 应用程序,则制作一个带有不可见UI 的javafx 应用程序。然后启动您的摇摆应用程序。这样你就不必重新设计你的代码。但是是的,构建工具会改变。这就是为什么我说,做对了很难。如果您遇到更好的方法,请告诉我
    • Java packaging tools which ship with Oracle Java 8 可以打包一个不使用 JavaFX 的 Java 应用程序。这些工具不是 JavaFX 特定的。您可以将现有的基于 Swing 或 SWT 的 Java 应用程序打包为 self-contained application,而无需将其转换为 JavaFX 应用程序。
    【解决方案2】:

    是的,您可以将 Oracle 的 JRE 打包到您的应用中。 Apple 甚至会接受它进入 AppStore。

    该工具称为 appbundle。这是指南:https://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html

    可以在此处找到添加了一些功能的 appbundler 分支:https://bitbucket.org/infinitekind/appbundler

    【讨论】:

      【解决方案3】:

      是的。最终用户需要在他们的机器上安装 Java。

      【讨论】:

      • 你知道我有什么方法可以让他们不需要Java吗?
      • 没有在您的应用程序的安装包中捆绑 Java 运行时环境我不知道您如何做到这一点。
      • 我猜捆绑 JRE 会使应用程序变得巨大?
      • 更大是的。不过,对于不同的人来说,巨大意味着不同的东西。
      • @ikhaliq15 巨大是一个相对术语,它肯定会让应用程序变得更大。但是,如果您开始分发 JRE,您还需要考虑许可。
      【解决方案4】:

      如果您使用 amipackage,则不会。 它也打包了jre...

      这里是步骤......

      a) Download amipackage
      b) Setup a config file that describes your app
      c) ./amipackage.sh --config=<your config file>
      d) your dmg and tar.gz are present in the out folder.
      

      我觉得很简单

      https://www.amidb.com/amipackage/index.html

      【讨论】:

      • @bummi - 我发布的内容确实解决了问题。我们都致力于销售软件。请不要无礼。更糟糕的是,您认为是垃圾邮件。让您的个人资料指向外部网站也无济于事。
      猜你喜欢
      • 2010-09-07
      • 2016-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 2021-01-15
      • 2017-01-03
      相关资源
      最近更新 更多