首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Install4j:运行批处理文件/脚本文件进行回滚操作

Install4j:运行批处理文件/脚本文件进行回滚操作
EN

Stack Overflow用户
提问于 2016-03-05 13:40:46
回答 1查看 899关注 0票数 2

在linux中,我希望我的更新程序运行一个用于回滚操作的脚本文件(实际上是将某些文件权限更改为其他用户,而不是根用户)。所以,我能想到的可能方法是:

  1. 使用操作:在执行回滚时“运行可执行文件或批处理文件”,并在脚本使用根权限时运行脚本。
  2. 在执行回滚操作时,任何运行脚本或调用的方法都已经创建了具有根权限的“运行可执行文件或批处理文件”。
  3. 在回滚操作中使用ProcessBuilder (我已经将其用于正常操作)

但是,在install4j文档中,我找不到任何方法可以帮助我做到这一点。我正在阅读InstallerContext.runElevated上的文档,但它似乎不是我要找的东西。

更新:

结果是,在“运行脚本”操作中使用ProcessBuilder直接运行脚本,并具有最大提升的权限(Root),从而完成任务。但是我仍然想知道事件侦听器是否有可能从它触发一个动作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 09:29:35

在事件侦听器代码中,可以像这样以编程方式运行操作:

代码语言:javascript
运行
复制
import com.install4j.runtime.beans.actions.misc.*;

RunExecutableAction action = new RunExecutableAction();
action.setExecutable(...);
action.setWorkingDirectory(...);
// other configuration
action.execute(context);

若要以最大权限执行该操作,请执行以下操作:

代码语言:javascript
运行
复制
context.runElevated(new RemoteCallable() {
    @Override
    public Serializable execute() {
        RunExecutableAction action = new RunExecutableAction();
        action.setExecutable(...);
        action.setWorkingDirectory(...);
        // other configuration
        return action.execute(context);
    }
}, true);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35814859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档