【发布时间】:2017-05-22 17:48:52
【问题描述】:
我开发了 IntelliJ IDEA 插件,它在主菜单中添加了一个“构建我的项目”按钮。当用户单击按钮时,插件应该开始构建 SBT 项目并将 SBT 输出输出到控制台,以便用户看到构建进度。要运行构建,我需要 3 个操作:
- cd 到项目目录。
- 执行“sbt package”命令。
- 将命令输出打印到控制台。
这是我的代码:
`
Runtime r = Runtime.getRuntime();
Process p = r.exec("cd /project_dir && sbt package");
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null){
MyIdeaView.getInstance(project).getConsole().print(line);
}
`
问题是,当我将几个以“&&”分隔的命令传递给 Runtime.exec() 时,我看不到任何输出。 我尝试了另外几个命令:
Process p = r.exec("cd /project_dir && pwd");
我仍然没有看到任何输出,所以问题不在 sbt 命令中。当我通过单个命令时,例如"pwd" 或 "ls" 到 Runtime.exec() 方法,我成功地看到了命令输出。 那么,任何人都可以建议,如何从 IDEA 插件运行命令“cd”和“sbt package”并获得“sbt package”命令的输出?
【问题讨论】:
标签: java intellij-idea