Process 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
與ProcessBuilder#start()
Runtime#exec(String[],String[],File) Runtime.exec 方法會建立一個原生程序,並回傳一個子類別的實例,該子類別 Process 可用於控制程序並取得相關資訊。
[Android.Runtime.Register("java/lang/Process", DoNotGenerateAcw=true)]
public abstract class Process : Java.Lang.Object
[<Android.Runtime.Register("java/lang/Process", DoNotGenerateAcw=true)>]
type Process = class
inherit Object
- 繼承
- 屬性
備註
和 ProcessBuilder#start()Runtime#exec(String[],String[],File) Runtime.exec 方法會建立一個原生程序,並回傳一個 Process 子類別的實例,可用來控制程序並取得相關資訊。 該類別 Process 提供執行程序輸入、輸出、等待程序完成、檢查程序退出狀態,以及銷毀(終止)程序的方法。
建立程序的方法可能不適合某些原生平台上的特殊程序,例如原生視窗程序、守護程序、Microsoft Windows 上的 Win16/DOS 程序,或是 shell 腳本。
預設情況下,所建立的子程序沒有自己的終端機或主控台。 其所有標準 I/O(例如 stdin、stdout、stderr)操作都會被導向到父程序,並可透過使用方法 #getOutputStream()、 #getInputStream()、 和 #getErrorStream()取得的串流存取。 父程序利用這些串流向子程序輸入,並從子程序獲取輸出。 由於部分原生平台僅提供有限的緩衝區大小給標準輸入與輸出串流,若未能及時寫入或讀取子程序的輸出串流,可能導致子程序阻塞甚至死結。
在需要時,子程序的輸入輸出也可以利用類別 ProcessBuilder 的方法重新導向。
當沒有其他物件參考 Process 時,子程序不會被終止,而是繼續非同步執行。
不要求由Process物件所代表的程序必須非同步或同時執行,相對於擁有該Process物件的 Java 程序。
自 1.5 版本起, ProcessBuilder#start() 是建立 Process. 的首選方式。
新增於JDK1.0。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| Process() | |
| Process(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| ErrorStream |
回傳一個輸入串流,該串流與由此物件所代表的原生程序的錯誤串流 (stderr) 相連。 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| InputStream |
回傳一個輸入串流,該串流連接至由此物件表示的原生程序的標準輸出串流(stdout)。 |
| IsAlive |
測試由此 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
與 |
| JniPeerMembers |
取得用於調用此 Java 節點成員的 JNI 元資料。 |
| OutputStream |
回傳一個輸出串流,該串流連接至由此物件代表的原生程序的標準輸入串流(stdin)。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
與 |
| Destroy() |
這會扼殺子程序。 |
| DestroyForcibly() |
這會扼殺子程序。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
與 |
| Equals(Object) |
與 |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| ExitValue() |
回傳子程序的出口值。 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| Pid() |
回傳該程序的原生程序 ID。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
與 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WaitFor() |
使當前執行緒在必要時等待,直到該 |
| WaitFor(Int64, TimeUnit) |
使目前執行緒在必要時等待,直到該 |
| WaitForAsync() |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| WaitForAsync(Int64, TimeUnit) |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
與 |
| IJavaPeerable.Finalized() |
與 |
| IJavaPeerable.JniObjectReferenceControlBlock |
與 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
與 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
與 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
與 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
與 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |