我有一个代码,我使用getRuntime().exec()
来执行脚本:
Process pr = Runtime.getRuntime().exec(cmd);
BufferedReader bfr = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
while((line = bfr.readLine()) != null) {
// WHAT TO DO HERE?
}
大多数情况下,脚本将执行执行某些操作的命令而不返回任何行,如将文件从一个位置复制到另一个位置或此行上的某些内容。我想知道在这种情况下我能有效地进行错误处理吗?我的意思是如果脚本返回的内容比上面的代码中的那些在while循环中显示为输出,但在这种情况下,没有返回显示的内容。那么我怎么能在这里得到错误处理呢?
答案 0 :(得分:0)
我认为这是jave代码,但不是Python。你把错误的标签。 这里有一些提示。希望它有所帮助。
...
// define your cmd here
Process p = Runtime.getRuntime().exec(cmd);
final InputStream is = p.getInputStream();
Thread t = new Thread(new Runnable() {
public void run() {
InputStreamReader isr = new InputStreamReader(is);
int ch;
try {
while ((ch = isr.read()) != -1) {
System.out.print((char) ch);
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
t.start();
p.waitFor();
t.join();
...