執行工具
public
class
RunUtil
extends Object
implements
IRunUtil
java.lang.Object | |
↳ | com.android.tradefed.util.RunUtil |
一系列執行作業的輔助方法。
摘要
欄位 | |
---|---|
public
static
final
String |
INHERITIO_PREFIX
|
public
static
final
String |
RUNNABLE_NOTIFIER_NAME
|
公用建構函式 | |
---|---|
RunUtil()
建立要使用的新 |
|
RunUtil(boolean inheritEnvVars)
|
公用方法 | |
---|---|
void
|
allowInterrupt(boolean allow)
允許/禁止在目前執行緒上執行中斷。 |
static
IRunUtil
|
getDefault()
取得預設 |
void
|
interrupt(Thread thread, String message, ErrorIdentifier errorId)
中斷指定執行緒進行中/即將執行的執行作業。 |
void
|
interrupt(Thread thread, String message)
中斷指定執行緒進行中/即將執行的執行作業。 |
boolean
|
isInterruptAllowed()
指定 RunUtil 的中斷狀態。 |
static
void
|
linkFile(File destRoot, String relToRoot, File target)
將 |
Process
|
runCmdInBackground(Redirect redirect,
接受指令引數的 |
Process
|
runCmdInBackground(
接受指令引數的 |
Process
|
runCmdInBackground(
使用 |
Process
|
runCmdInBackground(String... command)
以非同步方式執行系統指令的輔助方法。 |
Process
|
runCmdInBackground(Redirect redirect, String... command)
以非同步方式執行系統指令的輔助方法。 |
boolean
|
runEscalatingTimedRetry(long opTimeout, long initialPollInterval, long maxPollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。 |
boolean
|
runFixedTimedRetry(long opTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。 |
boolean
|
runFixedTimedRetryWithOutputMonitor(long opTimeout, long idleOutputTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。 |
CommandStatus
|
runTimed(long timeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
封鎖並執行作業,如果作業時間超過指定時間,就會取消作業。 |
CommandResult
|
runTimedCmd(long timeout, OutputStream stdout, OutputStream stderr, String... command)
執行系統指令的輔助方法,如果執行時間超過指定時間,就會取消 並將輸出內容重新導向至檔案 |
CommandResult
|
runTimedCmd(long timeout, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求 |
CommandResult
|
runTimedCmdRetry(long timeout, long retryInterval, int attempts, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求 |
CommandResult
|
runTimedCmdRetryWithOutputMonitor(long timeout, long idleOutputTimeout, long retryInterval, int attempts, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求 |
CommandResult
|
runTimedCmdSilently(long timeout, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求 |
CommandResult
|
runTimedCmdSilentlyRetry(long timeout, long retryInterval, int attempts, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求 |
CommandResult
|
runTimedCmdWithInput(long timeout, String input, File stdoutFile, File stderrFile, String... command)
執行系統指令的輔助方法,如果執行時間超過指定時間,就會取消 並將輸出內容重新導向至檔案 |
CommandResult
|
runTimedCmdWithInput(long timeout, String input, String... command)
輔助方法可執行需要 stdin 輸入的系統指令,並在指令中取消 需要超過指定時間的時間 |
CommandResult
|
runTimedCmdWithInput(long timeout, String input,
輔助方法可執行需要 stdin 輸入的系統指令,並在指令中取消 需要超過指定時間的時間 |
CommandResult
|
runTimedCmdWithInputRedirect(long timeout, File inputRedirect, String... command)
使用輔助方法執行需要從檔案重新導向 Stdin 的系統指令;以及 在所需時間超過指定時間時取消作業。 |
CommandResult
|
runTimedCmdWithOutputMonitor(long timeout, long idleOutputTimeout, OutputStream stdout, OutputStream stderr, String... command)
執行系統指令的輔助方法,如果執行時間超過指定時間,就會取消 並將輸出內容重新導向至檔案 |
CommandResult
|
runTimedCmdWithOutputMonitor(long timeout, long idleOutputTimeout, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求 |
CommandResult
|
runTimedCmdWithOutputMonitor(long timeout, long idleOutputTimeout, OutputStream stdout, OutputStream stderr, ICacheClient cacheClient, String... command)
透過快取執行系統指令的輔助方法。 |
boolean
|
runTimedRetry(long opTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。 |
boolean
|
runTimedRetryWithOutputMonitor(long opTimeout, long idleOutputTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。 |
CommandStatus
|
runTimedWithOutputMonitor(long timeout, long idleOutputTimeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
封鎖並執行作業,如果作業時間超過指定時間,就會取消作業。 |
void
|
setEnvVariable(String name, String value)
設定執行系統指令時要使用的環境變數。 |
void
|
setEnvVariablePriority(IRunUtil.EnvPriority priority)
決定是否建立程序時,取消設定環境變數的優先順序較高 而不是設定優先順序 |
void
|
setInterruptibleInFuture(Thread thread, long timeMs)
請設為稍候片刻再設為可中斷。 |
void
|
setLinuxInterruptProcess(boolean interrupt)
允許使用 Linux「kill」在 #runTimed 方法執行時中斷 進入逾時狀態。 |
void
|
setRedirectStderrToStdout(boolean redirect)
設定標準錯誤串流,在執行系統時重新導向至標準輸出串流 指令 |
void
|
setWorkingDir(File dir)
設定系統指令的工作目錄。 |
void
|
sleep(long time)
輔助方法:在指定時間休眠,忽略任何例外狀況。 |
static
String
|
toRelative(File start, String target)
|
void
|
unsetEnvVariable(String key)
取消設定環境變數,如此一來,系統指令就會在沒有這個環境變數的情況下執行。
環境變數可能會沿用父項程序,因此我們需要刪除
|
欄位
INHERITIO_PREFIX
public static final String INHERITIO_PREFIX
RUNNABLE_NOTIFIER_NAME
public static final String RUNNABLE_NOTIFIER_NAME
公用建構函式
執行工具
public RunUtil (boolean inheritEnvVars)
參數 | |
---|---|
inheritEnvVars |
boolean |
公用方法
允許中斷
public void allowInterrupt (boolean allow)
允許/禁止在目前執行緒上執行中斷。如果被允許,請執行
目前的執行緒可以透過 interrupt(Thread, String)
方法中斷其他執行緒。
參數 | |
---|---|
allow |
boolean :是否允許目前執行緒上的執行作業中斷。 |
getDefault
public static IRunUtil getDefault ()
取得預設 RunUtil
物件的參照。
這對於想要在不自訂的情況下使用 IRunUtil 的呼叫端非常有幫助。
建議需要自訂 IRunUtil 執行個體的呼叫端
(也就是必須呼叫 setEnvVariable(String, String)
或
setWorkingDir(File)
建立自己的副本。
傳回 | |
---|---|
IRunUtil |
中斷
public void interrupt (Thread thread, String message, ErrorIdentifier errorId)
中斷指定執行緒進行中/即將執行的執行作業。要在
指定的執行緒會擲回 RunInterruptedException
。
參數 | |
---|---|
message |
String :RunInterruptedException 的訊息。 |
errorId |
ErrorIdentifier :代表中斷原因 (如果已知)。 |
中斷
public void interrupt (Thread thread, String message)
中斷指定執行緒進行中/即將執行的執行作業。要在
指定的執行緒會擲回 RunInterruptedException
。
參數 | |
---|---|
message |
String :RunInterruptedException 的訊息。 |
isInterruptAllowed 是否允許
public boolean isInterruptAllowed ()
指定 RunUtil 的中斷狀態。
傳回 | |
---|---|
boolean |
如果執行可以中斷,傳回 true,否則傳回 false。 |
連結檔案
public static void linkFile (File destRoot, String relToRoot, File target)
將 target
連結至 destRoot
底下的地點。
如果目標檔案或符號連結已存在於 destRoot
底下,則檔案
不會連結。
參數 | |
---|---|
destRoot |
File :目的地的根。 |
relToRoot |
String :從目的地目錄到根的相對路徑。 |
target |
File :要連結的目標檔案。 |
擲回 | |
---|---|
|
無法連結目標檔案。 |
runCmdInBackground
public Process runCmdInBackground (Redirect redirect,command)
接受指令引數的 runCmdInBackground(String)
替代方法
。ERROR(/List)
參數 | |
---|---|
redirect |
Redirect :要套用至 ProcessBuilder 的 ERROR(/Redirect) 。 |
command |
:包含指定系統指令和選用引數的 ERROR(/List)
至 exec |
傳回 | |
---|---|
Process |
已執行指令的 Process |
runCmdInBackground
public Process runCmdInBackground (command)
接受指令引數的 runCmdInBackground(String)
替代方法
。ERROR(/List)
參數 | |
---|---|
command |
:包含指定系統指令和選用引數的 ERROR(/List)
至 exec |
傳回 | |
---|---|
Process |
已執行指令的 Process |
runCmdInBackground
public Process runCmdInBackground (command, OutputStream output)
使用 ERROR(/OutputStream)
執行指令,記錄指令輸出內容。
Stdout 和 stderr 會合併在一起。
參數 | |
---|---|
command |
:要執行的指令 |
output |
OutputStream :用於儲存輸出內容的 OutputStream |
傳回 | |
---|---|
Process |
執行指令的 Process |
runCmdInBackground
public Process runCmdInBackground (String... command)
以非同步方式執行系統指令的輔助方法。
會在啟動指令後立即傳回。
參數 | |
---|---|
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
Process |
已執行指令的 Process |
runCmdInBackground
public Process runCmdInBackground (Redirect redirect, String... command)
以非同步方式執行系統指令的輔助方法。
會在啟動指令後立即傳回。
參數 | |
---|---|
redirect |
Redirect :要套用至 ProcessBuilder 的 ERROR(/Redirect) 。 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
Process |
已執行指令的 Process |
runEscalatingTimed 重試
public boolean runEscalatingTimedRetry (long opTimeout, long initialPollInterval, long maxPollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。
每次嘗試執行作業之間的等待時間會指數增加。本設計為專供 為了讓系統有時間進行復原等作業 暫時無法使用。
參數 | |
---|---|
opTimeout |
long :單一作業嘗試的等待時間上限 (毫秒) |
initialPollInterval |
long :嘗試執行兩次作業時,等待的初始時間 |
maxPollInterval |
long :嘗試作業之間等待的時間上限 |
maxTime |
long :嘗試執行作業的總時間約略值 |
runnable |
IRunUtil.IRunnableResult :要執行的 IRunUtil.IRunnableResult |
傳回 | |
---|---|
boolean |
如果作業在 maxTime 到期前成功完成,則為 true |
runFixedTimed 重試
public boolean runFixedTimedRetry (long opTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。
參數 | |
---|---|
opTimeout |
long :單一作業嘗試的等待時間上限 (毫秒) |
pollInterval |
long :嘗試執行兩次作業時,等待的初始時間 |
maxTime |
long :嘗試執行作業的總時間約略值 |
runnable |
IRunUtil.IRunnableResult :要執行的 IRunUtil.IRunnableResult |
傳回 | |
---|---|
boolean |
如果作業在 maxTime 到期前成功完成,則為 true |
runFixedTimed 重試 WithOutputMonitor
public boolean runFixedTimedRetryWithOutputMonitor (long opTimeout, long idleOutputTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。也會監控 活動的輸出串流,如果在指定時間未觀察到串流活動時取消,則取消。 如果閒置輸出逾時設為零,就不會發生串流監控事件。
參數 | |
---|---|
opTimeout |
long :單一作業嘗試的等待時間上限 (毫秒) |
idleOutputTimeout |
long :輸出串流的輸出內容最長 (以毫秒為單位) |
pollInterval |
long :嘗試執行兩次作業時,等待的初始時間 |
maxTime |
long :嘗試執行作業的總時間約略值 |
runnable |
IRunUtil.IRunnableResult :要執行的 IRunUtil.IRunnableResult |
傳回 | |
---|---|
boolean |
如果作業在 maxTime 到期前成功完成,則為 true |
執行時間
public CommandStatus runTimed (long timeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
封鎖並執行作業,如果作業時間超過指定時間,就會取消作業。
參數 | |
---|---|
timeout |
long :等待時間上限 (毫秒) |
runnable |
IRunUtil.IRunnableResult :要執行的 IRunUtil.IRunnableResult |
logErrors |
boolean :在例外狀況上記錄錯誤。 |
傳回 | |
---|---|
CommandStatus |
CommandStatus 作業的結果。 |
runTimedCmd
public CommandResult runTimedCmd (long timeout, OutputStream stdout, OutputStream stderr, String... command)
執行系統指令的輔助方法,如果執行時間超過指定時間,就會取消
並將輸出內容重新導向至檔案透過這種方式提供 ERROR(/OutputStream)
時
這些函式會在函式結束時保持開啟
參數 | |
---|---|
timeout |
long :等待時間上限,以毫秒為單位。0 表示沒有逾時。 |
stdout |
OutputStream :要重新導向 std 輸出內容的 ERROR(/OutputStream) 。可以是空值。 |
stderr |
OutputStream :ERROR(/OutputStream) ,其中會重新導向錯誤輸出內容。可以是空值。 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmd
public CommandResult runTimedCmd (long timeout, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求
參數 | |
---|---|
timeout |
long :等待時間上限,以毫秒為單位。0 表示沒有逾時。 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmd 重試
public CommandResult runTimedCmdRetry (long timeout, long retryInterval, int attempts, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求
參數 | |
---|---|
timeout |
long :每次嘗試時等待的時間上限 (毫秒) |
retryInterval |
long :每次重試指令前的等待時間 |
attempts |
int :嘗試次數上限 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmd 重試 WithOutputMonitor
public CommandResult runTimedCmdRetryWithOutputMonitor (long timeout, long idleOutputTimeout, long retryInterval, int attempts, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求同時監控活動的輸出串流,如果沒有串流活動,則取消 特定時間的觀察。如果閒置輸出逾時設為零,就不會監控串流 會發生這種事。
參數 | |
---|---|
timeout |
long :每次嘗試時等待的時間上限 (毫秒) |
idleOutputTimeout |
long :輸出串流的輸出內容最長 (以毫秒為單位) |
retryInterval |
long :每次重試指令前的等待時間 |
attempts |
int :嘗試次數上限 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdSilently
public CommandResult runTimedCmdSilently (long timeout, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消
讓應用程式從可以最快做出回應的位置
回應使用者要求與 runTimedCmd(long, String)
類似,但不會記錄以下項目的任何錯誤:
例外狀況。
參數 | |
---|---|
timeout |
long :等待時間上限 (毫秒) |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdSilently 重試
public CommandResult runTimedCmdSilentlyRetry (long timeout, long retryInterval, int attempts, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消
讓應用程式從可以最快做出回應的位置
回應使用者要求和「runTimedCmdRetry(long, long, int, String[])
」類似,
但不會記錄例外狀況上的任何錯誤。
參數 | |
---|---|
timeout |
long :等待時間上限 (毫秒) |
retryInterval |
long :每次重試指令前的等待時間 |
attempts |
int :嘗試次數上限 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input, File stdoutFile, File stderrFile, String... command)
執行系統指令的輔助方法,如果執行時間超過指定時間,就會取消 並將輸出內容重新導向至檔案
參數 | |
---|---|
timeout |
long :等待時間上限,以毫秒為單位。0 表示沒有逾時。 |
input |
String :要傳遞給處理的 stdin 輸入內容 |
stdoutFile |
File :要重新導向 std 輸出內容的 ERROR(/File) 。可以是空值。 |
stderrFile |
File :ERROR(/File) ,其中會重新導向錯誤輸出內容。可以是空值。 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input, String... command)
輔助方法可執行需要 stdin 輸入的系統指令,並在指令中取消 需要超過指定時間的時間
參數 | |
---|---|
timeout |
long :等待時間上限 (毫秒) |
input |
String :要傳遞給處理的 stdin 輸入內容 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input,command)
輔助方法可執行需要 stdin 輸入的系統指令,並在指令中取消 需要超過指定時間的時間
參數 | |
---|---|
timeout |
long :等待時間上限 (毫秒) |
input |
String :要傳遞給處理的 stdin 輸入內容 |
command |
:ERROR(/List) ,包含系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdWithInputRedirect
public CommandResult runTimedCmdWithInputRedirect (long timeout, File inputRedirect, String... command)
使用輔助方法執行需要從檔案重新導向 Stdin 的系統指令;以及 在所需時間超過指定時間時取消作業。
參數 | |
---|---|
timeout |
long :等待時間上限 (毫秒) |
inputRedirect |
File :使用 ProcessBuilder.redirectInput() 重新導向至標準輸入的 ERROR(/File) 。如果值為空值,系統不會重新導向 stdin。 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdWithOutputMonitor
public CommandResult runTimedCmdWithOutputMonitor (long timeout, long idleOutputTimeout, OutputStream stdout, OutputStream stderr, String... command)
執行系統指令的輔助方法,如果執行時間超過指定時間,就會取消
並將輸出內容重新導向至檔案透過這種方式提供 ERROR(/OutputStream)
時
這些函式會在函式結束時保持開啟
參數 | |
---|---|
timeout |
long :等待時間上限,以毫秒為單位。0 表示沒有逾時。 |
idleOutputTimeout |
long :輸出串流的輸出內容最長 (以毫秒為單位) |
stdout |
OutputStream :要重新導向 std 輸出內容的 ERROR(/OutputStream) 。可以是空值。 |
stderr |
OutputStream :ERROR(/OutputStream) ,其中會重新導向錯誤輸出內容。可以是空值。 |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdWithOutputMonitor
public CommandResult runTimedCmdWithOutputMonitor (long timeout, long idleOutputTimeout, String... command)
輔助方法執行系統指令,並在所需時間超過指定時間時取消 讓應用程式從可以最快做出回應的位置 回應使用者要求同時監控活動的輸出串流,如果沒有串流活動,則取消 特定時間的觀察。如果閒置輸出逾時設為零,就不會監控串流 會發生這種事。
參數 | |
---|---|
timeout |
long :等待時間上限,以毫秒為單位。0 表示沒有逾時。 |
idleOutputTimeout |
long :輸出串流的輸出內容最長 (以毫秒為單位) |
command |
String :指定的系統指令和 exec 的選用引數 |
傳回 | |
---|---|
CommandResult |
含有執行指令執行結果的 CommandResult |
runTimedCmdWithOutputMonitor
public CommandResult runTimedCmdWithOutputMonitor (long timeout, long idleOutputTimeout, OutputStream stdout, OutputStream stderr, ICacheClient cacheClient, String... command)
透過快取執行系統指令的輔助方法。
如果指定 cacheClient
,系統就會啟用快取。如果快取
快取結果將會傳回快取結果否則runTimedCmdWithOutputMonitor(long, long, OutputStream, OutputStream, String)
用於執行指令,並將結果上傳以供快取。
參數 | |
---|---|
timeout |
long :等待時間上限,以毫秒為單位。0 表示沒有逾時。 |
idleOutputTimeout |
long :輸出串流的輸出內容最長 (以毫秒為單位)。 |
stdout |
OutputStream :要重新導向 std 輸出內容的 ERROR(/OutputStream) 。可以是空值。 |
stderr |
OutputStream :ERROR(/OutputStream) ,其中會重新導向錯誤輸出內容。可以是空值。 |
cacheClient |
ICacheClient :用於處理快取的 ICacheClient 例項。 |
command |
String :指定的系統指令和 exec 的選用引數。 |
傳回 | |
---|---|
CommandResult |
含有指令執行結果的 CommandResult 。 |
runTimed 重試
public boolean runTimedRetry (long opTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。
參數 | |
---|---|
opTimeout |
long :嘗試一次作業後等待的時間上限 (毫秒) |
pollInterval |
long :每次重試指令前的等待時間 |
attempts |
int :嘗試次數上限 |
runnable |
IRunUtil.IRunnableResult :要執行的 IRunUtil.IRunnableResult |
傳回 | |
---|---|
boolean |
如果作業在嘗試前已順利完成,則為 true 。 |
runTimed 重試 WithOutputMonitor
public boolean runTimedRetryWithOutputMonitor (long opTimeout, long idleOutputTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
多次封鎖並執行一項作業,直到成功為止。也會監控 活動的輸出串流,如果在指定時間未觀察到串流活動時取消,則取消。 如果閒置輸出逾時設為零,就不會發生串流監控事件。
參數 | |
---|---|
opTimeout |
long :嘗試一次作業後等待的時間上限 (毫秒) |
idleOutputTimeout |
long :輸出串流的輸出內容最長 (以毫秒為單位) |
pollInterval |
long :每次重試指令前的等待時間 |
attempts |
int :嘗試次數上限 |
runnable |
IRunUtil.IRunnableResult :要執行的 IRunUtil.IRunnableResult |
傳回 | |
---|---|
boolean |
如果作業在嘗試前已順利完成,則為 true 。 |
runTimedWithOutputMonitor
public CommandStatus runTimedWithOutputMonitor (long timeout, long idleOutputTimeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
封鎖並執行作業,如果作業時間超過指定時間,就會取消作業。其他 監控活動的輸出串流,在沒有觀察到串流活動的情況下取消 指定時間。如果閒置輸出逾時設為零,就不會發生串流監控事件。
參數 | |
---|---|
timeout |
long :等待時間上限 (毫秒) |
idleOutputTimeout |
long :輸出串流的輸出內容最長 (以毫秒為單位) |
runnable |
IRunUtil.IRunnableResult :要執行的 IRunUtil.IRunnableResult |
logErrors |
boolean :在例外狀況上記錄錯誤。 |
傳回 | |
---|---|
CommandStatus |
CommandStatus 作業的結果。 |
setEnvVariable
public void setEnvVariable (String name, String value)
設定執行系統指令時要使用的環境變數。
參數 | |
---|---|
name |
String :變數名稱 |
value |
String :變數值 |
setEnvVariablePriority
public void setEnvVariablePriority (IRunUtil.EnvPriority priority)
決定是否建立程序時,取消設定環境變數的優先順序較高
而不是設定優先順序
根據預設,取消設定的優先順序較高,亦即如果嘗試以
由於系統會取消設定變數,因此不會設定該變數的名稱。
無法用於預設 IRunUtil
執行個體,
參數 | |
---|---|
priority |
IRunUtil.EnvPriority |
setInterruptibleInFuture
public void setInterruptibleInFuture (Thread thread, long timeMs)
請設為稍候片刻再設為可中斷。
ERROR(/CommandScheduler#shutdownHard())
。
參數 | |
---|---|
thread |
Thread :要中斷的執行緒。 |
timeMs |
long :設定中斷前的等待時間。 |
setLinuxInterruptProcess
public void setLinuxInterruptProcess (boolean interrupt)
允許使用 Linux「kill」在 #runTimed 方法執行時中斷
進入逾時狀態。
無法用於預設 IRunUtil
執行個體,
參數 | |
---|---|
interrupt |
boolean |
setRedirectStderrToStdout
public void setRedirectStderrToStdout (boolean redirect)
設定標準錯誤串流,在執行系統時重新導向至標準輸出串流 指令初始值為 false。
參數 | |
---|---|
redirect |
boolean :是否要重新導向的新值 |
setWorkingDir
public void setWorkingDir (File dir)
設定系統指令的工作目錄。
參數 | |
---|---|
dir |
File :工作目錄 |
舒眠
public void sleep (long time)
輔助方法:在指定時間休眠,忽略任何例外狀況。
參數 | |
---|---|
time |
long :要睡覺 毫秒。小於或等於 0 的值將被忽略 |
相對
public static String toRelative (File start, String target)
參數 | |
---|---|
start |
File |
target |
String |
傳回 | |
---|---|
String |
未設定這項政策
public void unsetEnvVariable (String key)
取消設定環境變數,如此一來,系統指令就會在沒有這個環境變數的情況下執行。
環境變數可能會沿用父項程序,因此我們需要刪除
ProcessBuilder.environment()
中的環境變數
參數 | |
---|---|
key |
String :變數名稱 |