Java Install4j-如果出现故障,是否有任何终结阶段选项?

Java Install4j-如果出现故障,是否有任何终结阶段选项?,java,install4j,Java,Install4j,我们正在使用Install4j 6.1.6。在安装程序上,故障策略操作选项之一是故障时退出 标记该选项时,安装程序将尝试回滚以前的更改,但并不总是能够回滚。这种情况的一个例子是,安装程序安装了一个窗口服务,但如果以后出现故障,它将无法通过回滚正确卸载它 有没有办法定义一个“最终”步骤,在这个步骤中,我可以定义如果发生故障应该发生什么 编辑:我知道“运行可执行文件或批处理文件”操作中有一个“回滚可执行文件”属性,但它仍然无法解决我的问题,因为我有许多操作可能在服务安装后失败。有没有办法在一批操作上

我们正在使用Install4j 6.1.6。在安装程序上,故障策略操作选项之一是
故障时退出

标记该选项时,安装程序将尝试回滚以前的更改,但并不总是能够回滚。这种情况的一个例子是,安装程序安装了一个窗口服务,但如果以后出现故障,它将无法通过回滚正确卸载它

有没有办法定义一个“最终”步骤,在这个步骤中,我可以定义如果发生故障应该发生什么


编辑:我知道“运行可执行文件或批处理文件”操作中有一个“回滚可执行文件”属性,但它仍然无法解决我的问题,因为我有许多操作可能在服务安装后失败。有没有办法在一批操作上定义这样的属性?

在回滚时没有运行的操作块

最好的选择可能是使用“运行脚本”操作,这些操作的脚本为
true
,并使用其“可选回滚脚本”属性执行清理

如果需要回滚代码中动作的功能,可以实例化动作并以编程方式执行它们,如下所示:

import com.install4j.runtime.beans.actions.misc.RunExecutableAction;

RunExecutableAction action = new RunExecutableAction();
action.setExecutable(...);
action.setArguments(...);

action.execute(context);

这可能会起作用,但此操作缺少“运行可执行文件或批处理文件”操作中存在的一些重要配置,如“等待终止”属性。它也能与“运行可执行文件或批处理文件”操作一起工作吗?谢谢!只是一个小问题-为什么您更喜欢“运行脚本”而不是“运行可执行文件或批处理文件”操作?如果我在过去已经有了一些逻辑,为什么要创建另一个新操作而不是使用现有操作?在“运行脚本”操作中,有一个在回滚期间调用的“可选回滚脚本”属性。“运行可执行文件或批处理文件”操作具有“使用回滚可执行文件”属性,但在回滚期间无法执行代码。不幸的是,它对我不起作用。我想我做错了什么。“运行脚本”操作的“可选回滚脚本”在回滚期间不执行。我将前面的另一个操作配置为失败(失败时退出),但回滚脚本不会执行任何操作。。我遗漏了什么吗?“运行脚本”操作必须在产生故障的操作之前,并且中间不得有任何标记为回滚屏障的操作或屏幕,