Java Process waitFor() 方法



描述

Java Process waitFor() 方法使當前執行緒等待(如有必要),直到此 Process 物件所代表的程序終止。如果子程序已終止,則此方法立即返回。如果子程序尚未終止,則呼叫執行緒將被阻塞,直到子程序退出。

宣告

以下是java.lang.Process.waitFor() 方法的宣告

public abstract int waitFor()

引數

返回值

此方法返回程序的退出值。按照慣例,0 表示正常終止。

異常

建立記事本程序以等待的示例

以下示例演示了 Process destroy() 方法的用法。我們為記事本可執行檔案建立了一個 Process 物件。然後我們讓程序等待並列印一條訊息。

package com.tutorialspoint;

public class ProcessDemo {

   public static void main(String[] args) {
      try {
         // create a new process
         System.out.println("Creating Process...");
         String[] cmds = {"notepad.exe"};
         Process p = Runtime.getRuntime().exec(cmds);

         // cause this process to stop until process p is terminated
         p.waitFor();

         // when you manually close notepad.exe program will continue here
         System.out.println("Waiting over.");
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Creating Process...
Waiting over.

建立計算器程序以等待的示例

以下示例演示了 Process destroy() 方法的用法。我們為計算器可執行檔案建立了一個 Process 物件。然後我們讓程序等待並列印一條訊息。

package com.tutorialspoint;

public class ProcessDemo {

   public static void main(String[] args) {
      try {
         // create a new process
         System.out.println("Creating Process...");
         String[] cmds = {"calc.exe"};
         Process p = Runtime.getRuntime().exec(cmds);

         // cause this process to stop until process p is terminated
         p.waitFor();

         // when you manually close calc.exe program will continue here
         System.out.println("Waiting over.");
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Creating Process...
Waiting over.

建立 Windows 資源管理器程序以等待的示例

以下示例演示了 Process destroy() 方法的用法。我們為 Windows 資源管理器可執行檔案建立了一個 Process 物件。然後我們讓程序等待並列印一條訊息。

package com.tutorialspoint;

public class ProcessDemo {

   public static void main(String[] args) {
      try {
         // create a new process
         System.out.println("Creating Process...");
         String[] cmds = {"explorer.exe"};
         Process p = Runtime.getRuntime().exec(cmds);

         // cause this process to stop until process p is terminated
         p.waitFor();

         // when you manually close explorer.exe program will continue here
         System.out.println("Waiting over.");
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Creating Process...
Waiting over.
java_lang_process.htm
廣告