如何使runtime.getruntime()。exec(String命令)返回一个布尔值?

时间:2014-03-21 06:16:55

标签: java batch-file

我正在尝试使用runtime.getruntime()。exec(String命令)来返回一个值,这样我就可以让系统决定是否再次执行它。 有解决方案吗?

4 个答案:

答案 0 :(得分:6)

Runtime.exec返回Process,进程有一个名为waitFor的方法,它将等待正在运行的进程终止并返回。

Process有一个名为exitVaue的方法,它返回int返回程序的退出状态。公约建议0表示正常终止,但这可能与您正在运行的程序有关。

你需要......

  1. 了解正在运行的流程的有效退出值
  2. 根据已知的有效退出值检查exitValue实例返回的Process
  3. 需要注意的事项......

    • 通常,您应该使用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