我的问题是我的程序启动了一个外部编辑器(目前硬编码为sublime),我希望程序等待用户在外部编辑器中输入他们想要的所有内容,保存它,然后在退出继续原始程序。我想创建一个进程并使用waitFor()
在这里使用是完美的,但是原始程序打开编辑器然后继续,就像它永远不需要停止一样?我不确定这与我推出的流程是外部编辑器还是我编写的一些错误有关。我寻找一种替代解决方案,但它似乎也没有用。我发布两个:
try{
theText.setText(cti.initialText);
String currentText = theText.getText();
File temp = File.createTempFile("tempfile",".tmp");
BufferedWriter bw = new BufferedWriter(new FileWriter(temp));
bw.write(currentText);
bw.close();
say("START IT");
Process p = Runtime.getRuntime().exec("subl " +
temp.getAbsolutePath());
try{
p.waitFor()
}catch(InterruptedException exc) {
}
say("DONE");
}
我也试过这个,但无济于事:
BufferedReader stdOut = new BufferedReader (new InputStreamReader(p.getInputStream()));
String s;
while((s=stdOut.readLine()) !=null){
}
是否应该使用ProcessBuilder
来执行此操作?如果是这样,我会喜欢一个工作的例子。如果您还有其他需要,请告诉我们!