JavaTM 2 Platform
Standard Ed. 6

java.lang
類別 Process

java.lang.Object
  繼承者 java.lang.Process

public abstract class Process
extends Object

ProcessBuilder.start()Runtime.exec 方法創建一個本機進程,並返回 Process 子類別的一個實例,該實例可用來控制進程並獲得相關資訊。Process 類別提供了執行從進程輸入、執行輸出到進程、等待進程完成、檢查進程的退出狀態以及銷毀(殺掉)進程的方法。

創建進程的方法可能無法針對某些本機平臺上的特定進程很好地工作,比如,本機視窗進程,守護進程,Microsoft Windows 上的 Win16/DOS 進程,或者 shell 文稿。創建的子進程沒有自己的終端或終端機。它的所有標準 io(即 stdin、stdout 和 stderr)操作都將通過三個串流 (getOutputStream()getInputStream()getErrorStream()) 重定向到父進程。父進程使用這些串流來提供到子進程的輸入和獲得從子進程的輸出。因為有些本機平臺僅針對標準輸入和輸出串流提供有限的緩衝區大小,如果讀寫子進程的輸出串流或輸入串流迅速出現失敗,則可能導致子進程阻塞,甚至產生死鎖。

當沒有 Process 物件的更多參考時,不是刪掉子進程,而是繼續非同步執行子進程。

對於帶有 Process 物件的 Java 進程,沒有必要非同步或共時執行由 Process 物件表示的進程。

從以下版本開始:
JDK1.0
另請參見:
ProcessBuilder, Runtime.exec(String[], String[], File)

建構子摘要
Process()
           
 
方法摘要
abstract  void destroy()
          殺掉子進程。
abstract  int exitValue()
          返回子進程的出口值。
abstract  InputStream getErrorStream()
          獲取子進程的錯誤串流。
abstract  InputStream getInputStream()
          獲取子進程的輸入串流。
abstract  OutputStream getOutputStream()
          獲取子進程的輸出串流。
abstract  int waitFor()
          導致當前執行緒等待,如有必要,一直要等到由該 Process 物件表示的進程已經終止。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

Process

public Process()
方法詳細資訊

getOutputStream

public abstract OutputStream getOutputStream()
獲取子進程的輸出串流。輸出串流被傳送給由該 Process 物件表示的進程的標準輸入串流。

實作注意事項:對輸出串流進行緩衝是一個好主意。

返回:
連接到子進程正常輸入的輸出串流。

getInputStream

public abstract InputStream getInputStream()
獲取子進程的輸入串流。輸入串流獲得由該 Process 物件表示的進程的標準輸出串流。

實作注意事項:對輸入串流進行緩衝是一個好主意。

返回:
連接到子進程正常輸出的輸入串流。
另請參見:
ProcessBuilder.redirectErrorStream()

getErrorStream

public abstract InputStream getErrorStream()
獲取子進程的錯誤串流。錯誤串流獲得由該 Process 物件表示的進程的錯誤輸出串流傳送的資料。

實作注意事項:對輸入串流進行緩衝是一個好主意。

返回:
連接到子進程錯誤串流的輸入串流。
另請參見:
ProcessBuilder.redirectErrorStream()

waitFor

public abstract int waitFor()
                     throws InterruptedException
導致當前執行緒等待,如有必要,一直要等到由該 Process 物件表示的進程已經終止。如果已終止該子進程,此方法立即返回。如果沒有終止該子進程,調用的執行緒將被阻塞,直到退出子進程。

返回:
進程的出口值。根據慣例,0 表示正常終止。
拋出:
InterruptedException - 如果當前執行緒在等待時被另一執行緒中斷,則停止等待,拋出 InterruptedException

exitValue

public abstract int exitValue()
返回子進程的出口值。

返回:
Process 物件表示的子進程的出口值。根據慣例,值 0 表示正常終止。
拋出:
IllegalThreadStateException - 如果此 Process 物件表示的子進程尚未終止。

destroy

public abstract void destroy()
殺掉子進程。強制終止此 Process 物件表示的子進程。


JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only