【发布时间】:2019-11-14 17:35:58
【问题描述】:
我想一些具有在 Windows 桌面上交付 Java 应用程序经验的 Java 专家将能够胜任这一任务。我一直是 Mac/Linux Java 开发人员,所以这对我来说是未知领域:-/。
我必须编写一个 Java 8 Swing 应用程序并将其安装在 Windows 10(64 位)机器上。我的 gameplan 是将应用程序打包为可执行 JAR 并使用Launch4J wrap 它,使其看起来像原生 Windows EXE(.exe 文件)。然而,它比 发行版要复杂一些:
- 会有上面提到的JAR/EXE,我们称之为
myapp.exe(由myapp.jar构建) - 应用程序会将日志输出到(本地?)目录
myapp.log - 应用程序将在运行时加载配置文件
myapp.properties - 分发还应包含用户指南
MyApp User Guide.html
假设机器上已经安装了 Java 8 JRE/JDK,所以我们不需要担心安装 Java 本身。
安装过程必须简单,包括:
- 从机器上完全删除旧版本(以及它的所有其他工件,例如日志文件、配置/属性文件、用户指南等)
- 在 Windows 10 默认位置安装新版本,或允许用户指定其他位置
此外,如果可能的话,我希望安装过程包括:
- 要求检查最小内存和磁盘空间、操作系统版本信息/兼容性(即确保其已安装在 Windows 10 上等)
- 提供易于使用的向导,例如用户可以单击的 MSI
- 可选择安装用户桌面的快捷方式
考虑到这一切,我想知道在现代 Windows 10/Java/Launch4J 环境中我有哪些选择。是否有工具可以帮助我快速编写 MSI 脚本,或者我是否必须在 C#/.NET 中编写自己的脚本并将其作为单独的二进制文件/项目?如果 MSI 不是一个选项,有哪些选项可能会击中我上面的所有要点?
我意识到我可以将整个内容作为 ZIP 分发,并且安装过程如下所示:
- 将 ZIP 保存到用户计算机上的某个位置,例如桌面
- 手动将之前的应用及其工件移至回收站
- 解压新的 ZIP
但是,这感觉很笨拙,我正在寻找更专业的东西。这里有什么解决方案吗?
【问题讨论】:
-
为什么是简历?它的主题不是骗子,是SSCCE,对任何现代 Java/Windows 开发人员来说都是有价值的信息。
-
我做的多平台工作不多。至少向您发送几个链接:Multi-Platform Installers。还有the major MSI installer tools的列表。
-
投反对票。 1) 工具推荐是题外话。 2)定义“更专业”是主观的和基于意见的,所以又跑题了。 3)与其他评论一样,可以从搜索引擎中找到大量工具,无论是商业的还是免费的。它们可能是特定于 Java 的,也可能是 Windows 通用的,两者都应该可以工作。
-
我不认为这是工具推荐,更多的是方法推荐,这是所有软件设计和架构的一个方面。我期待这个特定问题集有已知的解决方案,这将比我上面确定的更加生产化,这就是我所说的“专业”。
-
请参阅上面提供的链接。坦率地说,Java 部署总是有点混乱。有时会有很多奇怪的解决方案。商业工具 Advanced Installer 和 Installshield 具有一些 Java 功能。 WiX 也可以执行您列出的操作,因为该列表本质上是标准 MSI 功能(这些工具编译为输出 - 其中一些可以输出非标准 EXE 文件)。
标签: java java-8 windows-installer