在 Linux 安装程序的 install4j 中抑制 GUI 模式,同时允许 Windows 安装程序的 GUI 模式

Suppress GUI Mode in install4j for Linux Installer While Allowing GUI Mode for Windows Installer

我们正在使用 install4j 为我们的应用程序生成 Windows 和 Linux 安装程序。我们希望我们的用户在 Windows 上使用 GUI 模式进行安装,在 Linux.

上使用控制台模式进行安装

这通过将 -c 参数传递给安装程序来实现,我知道。但我也想禁止 Linux 使用 GUI 模式。类似于安装程序设置中的“在 Windows 上禁用控制台模式”选项。是否有我没有看到的东西导致了这种行为?

如果没有选项来抑制这一点,我们将向安装程序添加一个操作以在它从 Linux 启动并且处于 GUI 模式时退出。

从 install4j 8.0.8 开始,没有办法禁止 GUI 模式,您确实必须使用脚本

添加“运行 脚本”操作
!(Util.isLinux() && context.isGui())

并将其“失败策略”属性设置为“失败时退出”,将其“错误消息”属性设置为“不允许使用 GUI 模式”或类似内容。

安装程序上还有一个“默认执行模式”属性,您可以right-click它,select从上下文菜单中“切换到文本模式”并设置文本字段到

${compiler:executionMode}

然后,在“常规设置->编译器变量”中定义一个名为“executionMode”的编译器变量,值为“GUI”。在 Linux 媒体文件的媒体向导中,转到“自定义项目默认值->编译器变量”步骤并使用值“CONSOLE”覆盖“executionMode”编译器变量。

那么您的用户不必将 -c 作为参数传递给 Linux。


更新: 自 8.0.8 起,install4j 中存在一个错误,该错误会阻止为此 属性 替换编译器变量。将在8.0.9中修复。