我正在尝试使用runtime.getruntime()。exec(String命令)来返回一个值,这样我就可以让系统决定是否再次执行它。 有解决方案吗?
答案 0 :(得分:6)
Runtime.exec
返回Process
,进程有一个名为waitFor
的方法,它将等待正在运行的进程终止并返回。
Process
有一个名为exitVaue
的方法,它返回int
返回程序的退出状态。公约建议0
表示正常终止,但这可能与您正在运行的程序有关。
你需要......
exitValue
实例返回的Process
。需要注意的事项......
InputStream
的{{1}} s(输入和错误),因为如果不这样做会导致某些进程停止ProcessBuilder
通常是一个更好的解决方案,因为在处理命令的多个参数时具有更好的功能,具有重定向功能,甚至可以确定命令的起始目录上下文... 答案 1 :(得分:2)
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(args);
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
System.out.printf("Output of running %s is:",
Arrays.toString(args));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
答案 2 :(得分:0)
它会返回它将返回的进程,它取决于你是否成功运行并且取决于你的进程实际在做什么。
答案 3 :(得分:0)
runtime.getruntime()。exec(String command)方法创建本机进程并返回Process子类的实例,该实例可用于控制进程并获取有关它的信息。 Process类提供了从进程执行输入,执行进程输出,等待进程完成,检查进程的退出状态,以及销毁(杀死)进程的方法,它有一个方法exitValue,它返回0意味着它是正常的终止
Reference :http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html