【问题标题】:Automatic and seamless way to install a JVM when distributing app分发应用程序时自动无缝安装 JVM
【发布时间】:2015-09-15 07:07:01
【问题描述】:

假设我想以类似本机的方式分发 Java 桌面应用程序。是否有一种工具/技术来构建 Java 桌面应用程序安装程序,如果系统上尚不存在 JVM,它将自动无缝地安装 JVM?

为没有 JVM 的用户安装 Java 应用程序是一个两步过程(首先安装 JVM,然后是应用程序)。我想通过将安装一个典型的本地桌面应用程序设置为一步过程(或尽可能多的一步)来匹配安装典型本机桌面应用程序的体验。

【问题讨论】:

  • 您的目标是哪个操作系统?
  • @AdamMichalik 我想针对所有三个主要的 Oses。我意识到这三个的典型安装过程完全不同。
  • 编辑了我对 Linux 的建议的回复。我没有使用 OS X 的经验。
  • 大多数安装程序还支持将 JVM 与您的应用程序捆绑在一起,就像您想要的那样。这是一个包含更多选项的列表:stackoverflow.com/questions/32539336/…

标签: java jvm installation


【解决方案1】:

对于 Windows,我建议使用 NSIS installer 来包装 JRE 和您的程序的安装。这将允许真正的“安装”,即。 JRE 将安装到Program Files,并且可以从 Windows 控制面板(“公共 JRE”)卸载它。您需要为此捆绑 JRE 安装程序。

或者,您可以将整个 JRE(“私有 JRE”)与您的程序捆绑在一起。您可以使用Launch4J,它将您的 Java 应用程序(VM 选项、类路径等)的启动配置为 EXE 文件,将 JRE 作为您的分发文件夹之一,并指向 Launch4J 使用它。

或者,只需将解压后的 JRE(“私有 JRE”)放在您的发行版的其中一个文件夹中,并使用相对路径来使用该文件夹,而不是系统上安装的那个。

私有 JRE 的优点是您可以控制它是哪个 Java 版本。使用公共 JRE,用户可能能够卸载它或更改版本,然后抱怨您的程序无法运行;)

对于 Linux,如果您将应用程序作为 RPM 分发,您只需声明一个 Java 包作为您的依赖项。 Linux 包管理器应该负责这一切。另一方面,您仍然可以将 JRE 捆绑到您自己的 RPM 中,以独立于安装在用户计算机上的“主”版本。

【讨论】:

  • 并非所有 Linux 发行版都支持 RPM。只需提供一个可以解压并运行带有 JRE 相对路径的 shell 脚本的 tarball,可能更便携
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多