这个问题已经在这里有一个答案:
- 从我们的java程序执行另一个java程序[复制] 3个回答
我工作的那JUnit测试中调用几个Shell脚本一个Java程序,操作文件和SQL表(除。的和E的因此没有输出),然后在比较数据表说他们的预期值。 一切工作的理论,但是我遇到strage错误,其中一个类型的测试工作正常,而其他类型的十分钟超时后失败。 我已经分离出的问题是Shell脚本中的一个,但是我没有写这个剧本,我无法改变它以任何方式。 我可以解决此,最好的方法是节约的脚本有问题的输出,它来源于一系列回声通话。 是否有一个有点简单/可靠的方式来保存回声输出? 我GOOGLE了一下,但什么也没有上来。 我还没有试过存储输出又那么我没有试图告诉你,但我已经写的代码,可能是相关的是:
//Currently using BufferedWriter, File, FileWriter, IOException, and Writer
import java.io.*;
//Method to write to a log file
public void record(String input) throws IOException {
writer = new BufferedWriter(new FileWriter(file,true));
writer.write(input + "\n");
writer.close();
}
Runtime rt = Runtime.getRuntime();
//Several of these since a lot of file manipulation/script running occurs
process = rt.exec("./shell.sh");
process.waitFor();
在另一个问题,我问,有人推荐不使用的Runtime.exec()有几个原因。 虽然我认识的优势,不使用EXEC(),我需要为这个版本的程序。
该文艺青年最爱的问题:我的Java程序可以轻松地运行shell脚本以及挽救他们的回显输出? 如果没有,是否有一个尾-f相当于读取输出?