【问题标题】:Releasing a java application on different OS在不同的操作系统上发布 java 应用程序
【发布时间】:2009-08-13 04:38:21
【问题描述】:

我有一个 java 应用程序,我想以 exe 或 dwg 等形式发布,以便不同平台上的用户可以双击它并开始运行。 但是为了让我的代码能够很好地工作,我需要它作为 Windows 服务工作,以及其他操作系统中的任何等价物。 使用 Java web start 不是一个解决方案,因为据我了解,如果客户端机器关闭,那么用户将不得不再次双击该 exe。 我已经尝试过 java 服务包装器,但我看不到如何使其可发布。

谢谢 普拉纳贝什

【问题讨论】:

  • 这个问题部分涵盖了相同的领域(参见第 3 点):stackoverflow.com/questions/995881/…
  • 我可以使用 launch4j 为 windows 制作一个 exe,但是如何为 mac 制作一个 dmg?

标签: java service software-distribution


【解决方案1】:

如果您可以接受商业工具,我会推荐install4j。它可以为最常见的平台生成安装程序,专门支持将应用程序安装为服务。

引用他们的Features page

install4j 为生成和安装服务(守护进程)提供全面支持。对于服务,install4j 在 Windows 上生成服务可执行文件,在 Mac OS X 上生成启动项,在 Unix/Linux 平台上生成启动/停止脚本。

【讨论】:

  • 同意,我们使用此产品并为 Windows、MAC 和 Lunix 构建平台特定文件。它还为不同的操作系统提供了很酷的特定选项。如前所述,您可以作为服务安装到 Windows。对我来说,卖点是它还提供了用于自动更新的内置机制。它还有一个不错的 api。
【解决方案2】:

Java Service Wrapper 是一种适用于 Windows/Unix/OSX 的方法。多年来我一直在使用它,没有任何问题。这是一款很棒的软件,可以很好地处理 JVM 崩溃/挂起,如果发生错误,它会自动重启服务。

关于应用程序的分发,我建议在 Windows 上使用NSIS。它可以创建一个很好的安装程序,将文件放在必要的地方并运行 JSW 存根以在目标系统上安装服务。对于 Unix,您只需将其打包在 tar.gz 中并提供有关如何安装服务的说明(将 sh 脚本复制到 /etc/init.d,使用 chkconfig 或任何其他系统相关工具来管理启动脚本)。在 Mac 上,您应该将其打包成 dmg。

如果您想要更跨平台的解决方案,您也可以尝试izpack。 izpack可以从java web start运行,作为原生windows应用或者mac应用,查看utilities page

IzPack 是打包、分发和部署应用程序的一站式解决方案。 它是完全跨平台的并生成一个安装程序。因此,它是原生解决方案(例如特定于平台的安装程序和包管理器)的替代方案。 IzPack 生成的安装程序只需要 Java 虚拟机即可运行。

【讨论】:

    【解决方案3】:

    您需要为要发布的每个操作系统构建一个发布包。

    例如,对于 Windows,您需要找到一个可执行包装器。自从我这样做以来已经有一段时间了,但我记得使用了一对实际上将构建安装程序作为过程的一部分的夫妇。

    Launch4j 是我刚刚记得的一个

    【讨论】:

    • 我可以使用 launch4j 为 windows 制作一个 exe,但是如何为 mac 制作一个 dmg?
    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2023-03-23
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多