如何将Jar文件转换为exe或msi包以进行远程部署?

3
项目: 使用Java 7编写一个简单的Swing应用程序。 目标: 将其打包成.exe或MSI格式,以便我可以发布补丁和更新。
我知道有很多工具可以将jar文件转换为可执行的.exe文件,但我的问题是:
  1. 我在项目中使用了Java 7,而目标系统没有安装Java 7 - 所以我必须将jre 7与我的软件一起打包?希望我使用的第三方库能够随着jar文件一起编译。
  2. 我要远程部署软件包到目标系统,这可能吗?
  3. 我需要通过部署更新软件包来远程更新已安装的应用程序,这可行吗?

“分发...以便我可以发布应用程序的补丁和更新。” 应用程序有GUI吗?用户是否具有网络(或Intranet)访问权限?如果是这样,Java Web Start可以完成所需的操作。编辑:抱歉,JWS在其“远程”部分(第2点)存在一些问题。 - Andrew Thompson
1个回答

1
首先,将其分发为.EXE.MSI文件将无法提供您发布补丁/更新并远程处理它们的能力。为此,您需要为该特定应用程序实现自己的更新管理器,连接到您的远程存储库。有几个在SO上讨论这个问题的问题:
  1. 如何实现自动更新程序
  2. 如何在Java中实现自动更新程序
  3. 更新产品的最佳方法

如果您在该主题上深入挖掘一些,您迟早会发现,即使“自动更新”是一个要求,您也不需要.EXE.MSI文件,只需考虑Eclipse IDE,它被分发为.ZIP文件,并具有自己的更新管理器。

然而,我认为当你说“分发为.exe或MSI”时,你真正想要的是将其作为自动安装程序分发(这与自动更新程序不同)。对于这一点,你有几个选择:
  1. 如果你只想分发到Windows平台(这很遗憾,因为Java可以在许多平台上运行),那么可以尝试使用著名的NSISWiX Toolset
  2. 如果你希望它跨平台(正如我建议的那样),那么在this question中,你将找到一个列有几个工具的列表。

是的,你说得对。我正在尝试进行自动安装。那么,当我使用自动安装时,以后是否可以更新已安装的应用程序?我将使用IBM Tivoli软件分发来远程部署该应用程序。 - Wills

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接