我从 .jar 制作了一个 Mac OSX 应用程序。最终用户是否需要 Java?

I made a Mac OSX app from .jar. Does end-user need Java?

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

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

你处在一个非常棘手的地方!

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

以下是选项:

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

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

是的,您可以在您的应用程序中打包 Oracle 的 JRE。苹果甚至会接受它进入 AppStore。

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

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

如果您使用 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