问题描述
我们正在使用install4j为我们的应用程序生成Windows和Linux安装程序。我们希望用户在Windows上使用GUI模式进行安装,在Linux上使用控制台模式进行安装。
我知道,这是通过将-c参数传递给安装程序来实现的。但是我也想抑制Linux使用GUI模式。与安装程序设置中的“在Windows上禁用控制台模式”选项类似。有没有我看到的东西可以实现这种行为?
如果没有抑制这种情况的选项,我们将向安装程序添加一个操作,以退出从Linux启动且处于GUI模式的退出程序。
解决方法
从install4j 8.0.8开始,无法禁止GUI模式,实际上您必须在脚本中添加“运行脚本”操作
!(Util.isLinux() && context.isGui())
并将其“失败策略”属性设置为“失败时退出”,并将其“错误消息”属性设置为“不允许GUI模式”或类似的内容。
安装程序上还有一个“默认执行模式”属性,您可以右键单击它,从上下文菜单中选择“切换到文本模式”,并将文本字段设置为
${compiler:executionMode}
然后,在“常规设置->编译器变量”上定义一个名为“ executionMode”的编译器变量,其值为“ GUI”。在Linux媒体文件的媒体向导中,转到“自定义项目默认值->编译器变量”步骤,并用值“ CONSOLE”覆盖“ executionMode”编译器变量。
然后,您的用户不必在Linux上将-c
作为参数传递。
更新:从8.0.8版开始,install4j中存在一个错误,该错误阻止替换该属性的编译器变量。它将在8.0.9中修复。