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

3

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

4个回答

8

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

Process 有一个名为 exitValue 的方法,返回一个 int 表示程序的退出状态。惯例表明,0 表示正常终止,但这可能取决于你要运行的程序。

你需要...

  1. 了解你要运行的进程的有效退出值
  2. Process 实例返回的 exitValue 与已知的有效退出值进行比较。

注意事项...

  • 通常,应该消费 ProcessInputStream(输入和错误),因为不这样做可能会导致某些进程停滞
  • ProcessBuilder 通常是更好的解决方案,因为它在处理命令的多个参数、重定向以及甚至确定命令的起始目录上都具有更好的功能...

3
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);
       }

0

它返回的是进程,这就是它将要返回的内容,你需要推断它是否成功运行,这取决于你的进程实际上在做什么。


0

runtime.getruntime().exec(String command) 方法创建一个本地进程并返回 Process 的子类实例,该实例可用于控制进程并获取有关它的信息。Process 类提供了执行从进程输入、执行向进程输出、等待进程完成、检查进程的退出状态以及销毁(杀死)进程的方法,并且它有一个 exitValue 方法,如果返回值为 0,则表示正常终止。

Reference :http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html 


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接