我开发了IntelliJ IDEA插件,它添加了一个按钮" Build my project"在主菜单中。当用户单击该按钮时,插件应该开始构建SBT项目并将SBT输出放到控制台,以便用户看到构建进度。要运行构建,我需要3个操作:
这是我的代码:
`
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()方法,我成功地看到了命令输出。 所以,任何人都可以建议,如何运行这两个命令" cd"和" sbt package"来自IDEA插件并获得" sbt package"的输出命令?
答案 0 :(得分:0)
使用 Process Builder Class执行命令列表
ProcessBuilder(列出
<String>
命令)这构造了具有指定操作系统的进程构建器 程序和论点。
Builder processBuilder = new ProcessBuilder("cd /project_dir","sbt package");
Process process = processBuilder.start();