在linux中,我希望我的更新程序运行一个用于回滚操作的脚本文件(实际上是将某些文件权限更改为其他用户,而不是根用户)。所以,我能想到的可能方法是:
ProcessBuilder (我已经将其用于正常操作)但是,在install4j文档中,我找不到任何方法可以帮助我做到这一点。我正在阅读InstallerContext.runElevated上的文档,但它似乎不是我要找的东西。
更新:
结果是,在“运行脚本”操作中使用ProcessBuilder直接运行脚本,并具有最大提升的权限(Root),从而完成任务。但是我仍然想知道事件侦听器是否有可能从它触发一个动作。
发布于 2016-03-07 09:29:35
在事件侦听器代码中,可以像这样以编程方式运行操作:
import com.install4j.runtime.beans.actions.misc.*;
RunExecutableAction action = new RunExecutableAction();
action.setExecutable(...);
action.setWorkingDirectory(...);
// other configuration
action.execute(context);若要以最大权限执行该操作,请执行以下操作:
context.runElevated(new RemoteCallable() {
@Override
public Serializable execute() {
RunExecutableAction action = new RunExecutableAction();
action.setExecutable(...);
action.setWorkingDirectory(...);
// other configuration
return action.execute(context);
}
}, true);https://stackoverflow.com/questions/35814859
复制相似问题