1

我运行一个开源项目,该项目通常以通用 zip 格式分发我们的代码。除了核心软件,我们还有几个社区开发的软件附加组件。

而不是让用户从不同的位置和网站下载所有选项,我想提供一个占用空间小的安装程序,它将

  • 根据需要下载并安装 java。如果用户使用的是 64 位操作系统,则需要同时下载 32 位和 64 位。
  • 下载并解压核心软件 zip 文件
    • 允许用户选择最新的稳定版或开发版(两个不同的网站)
  • 选择附加软件选项(多个选项)
    • 单独下载每一个(不同的网站)
    • 根据需要解压/安装
    • 编写配置文件(纯文本)
  • 根据配置选项,根据需要清理目录。
    • 例如,如果我选择可选软件“1”,删除目录“X”

我不一定想在核心安装文件中提供所有这些额外的软件选项(事实上,如果我可以提供一个占用空间小的安装程序,它可以确定所有可用软件的最新版本(可能必须屏幕抓取一些网站,其他网站可能会提供一个带有版本号的文本文件)

Install4j 适合这个吗?

我知道我必须编写一些代码来进行版本识别,但大多数情况下我想要一个带有引导路径的 GUI,供用户选择选项并根据需要下载它们。

一旦我编写了脚本,我宁愿保留它并且不必一直编译新版本(如果可能的话),除了 URL 信息可能更改的实例。

4

1 回答 1

1

您可以使用“下载文件”操作从任意站点下载 ZIP 文件,然后根据需要使用“安装 ZIP 文件的内容”操作来安装它们。

至于向用户的展示,您可以使用标准安装组件工具,您可以在其中将安装组件排列成树,该树显示在“安装组件”屏幕上。您可以将所有安装组件留空。另一个优点是您可以指定安装组件的依赖关系。

在“安装屏幕”中,我将添加包含成对“下载文件”/“安装 ZIP 文件内容”操作的操作组(以及每个组件所需的任何其他操作)。每个动作组的条件表达式应设置为

context.getInstallationComponentById("123").isSelected()

其中“123”是对应安装组件的ID。

至于 64 位/32 位:在 Windows 上,我建议仅使用捆绑的 32 位 JRE 创建 32 位安装程序。这同样适用于 64 位 JRE。如有必要,必须创建一个单独的 64 位媒体文件。捆绑的 JRE 可以按需下载。

在 Linux 上,我真的不建议捆绑 JRE。如有必要,为 32 位 Linux 和 64 位 Linux 提供两个单独的媒体文件。

至于“用户引导路径”,您可以在 install4j中创建自定义屏幕。

于 2011-12-21T10:31:08.047 回答