java从IntelliJ IDEA插件运行sbt构建
我开发了IntelliJ IDEA插件,它在主菜单中添加了一个按钮“构建我的项目”。当用户点击按钮时,插件应该启动SBT项目的构建,并将SBT输出放到控制台,这样用户就可以看到构建进度。要运行构建,我需要3个操作:
- cd到项目目录李>
- 执行“sbt包”命令李>
- 将命令输出打印到控制台李>
这是我的密码:
`
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);
}
`
问题是,当我传递两个命令时,它们之间用“&;&;”分隔到运行时。exec(),我看不到任何输出。 我尝试了另外两个命令:
Process p = r.exec("cd /project_dir && pwd");
我仍然没有看到任何输出,所以问题不在sbt命令中。当我向运行时传递单个命令时,例如“pwd”或“ls”。方法,我成功地看到了命令输出。 那么,有谁能建议,如何从IDEA插件运行命令“cd”和“sbt-package”并获得“sbt-package”命令的输出
# 1 楼答案
使用 Process Builder Class来执行命令列表