public class hiProcess extends Object
Process
を用いて外部コマンドを実行します。
実行終了は次の形で知ることができます。
コマンドの標準出力と標準エラーは次の取り扱いができます。
ArrayList<String> lines = new ArrayList<String>(); hiProcess process= new hiProcess(); int result = process.exec_start("dir",lines);
修飾子とタイプ | フィールドと説明 |
---|---|
hiSyncQue<String> |
err
標準エラー出力取得用同期QUEUE(未)
|
hiSyncQue<String> |
out
標準出力取得用同期QUEUE(初期値null)
|
hiSyncQue<hiProcess> |
sync
終了イベント取得用同期QUEUE.
|
修飾子とタイプ | メソッドと説明 |
---|---|
void |
cd(String dir_)
ディレクトリを変更する.
|
void |
cmd_start(String cmd_)
コマンド行を指定し、非同期実行する.
|
void |
cmd_start(String[] cmd_)
コマンド要素を指定し、非同期実行する.
|
int |
cmd_start(String[] cmd_,
ArrayList<String> result_)
コマンド要素を指定し、非同期実行し結果をえる.
|
int |
cmd_start(String cmd_,
ArrayList<String> result_)
コマンド行を指定し、非同期実行し結果をえる
ここで指定されたコマンド文字列は
cmd /c の後ろに付加され実行されます。 |
void |
cmd(String cmd_)
実行すべきWindowsコマンド行を設定する.
|
void |
cmd(String[] cmd_)
実行すべきWindowsコマンド要素並びを設定する.
|
void |
done(Exception e_)
終了通知.
|
void |
done(int status_)
終了通知.
|
void |
errout(String str_)
非推奨です。
現版では用いられていない。結果を得たい場合は
output(String) をオーバーロードすること。 |
void |
exec_start(String cmd_)
コマンド行を指定し、非同期実行する.
|
void |
exec_start(String[] cmd_)
コマンド要素を指定し、非同期実行する.
|
int |
exec_start(String[] cmd_,
ArrayList<String> result_)
コマンド要素を指定し、実行し、結果をえる.
|
int |
exec_start(String cmd_,
ArrayList<String> result_)
コマンド行を指定し、非同期実行する.
|
void |
exec(String cmd_)
実行すべきコマンド行を設定する.
|
void |
exec(String[] cmd_)
実行すべきコマンド要素並びを設定する.
|
boolean |
is_running()
実行中かどうかを調べる.
|
boolean |
output(String str_)
標準out行ごとに呼び出される.
|
void |
removeEnv(String name_)
実行時の環境変数を削除する.
|
void |
setEnv(String name_,
String value_)
実行時の環境変数をセットする.
|
void |
setOutputQue(hiSyncQue<String> outQue_)
利用者指定の標準出力取得用同期QUEUEをセットする.
|
void |
setOutputQue(int limit_)
指定サイズの標準出力取得用同期QUEUEをセットする.
|
void |
start()
設定されたコマンドを非同期実行する.
|
void |
stop(boolean join_)
コマンドを停止する.
|
void |
waitAt(hiSyncQue<hiProcess> syncQue_)
利用者指定の同期QUEUEを終了イベント待ち用にセット.
|
int |
waitFor()
完了を待つ.
|
int |
waitFor(ArrayList<String> result_)
完了を待つ;結果をリストに得る(試験中).
|
int |
waitFor(long timeout_)
完了を待つ;タイムアウト時コマンド停止.
|
public void waitAt(hiSyncQue<hiProcess> syncQue_)
syncQue_
- 同期QUEUEpublic void setOutputQue(hiSyncQue<String> outQue_)
outQue_
- 標準出力取得用同期QUEUEpublic void setOutputQue(int limit_)
limit_
- queueサイズpublic void cd(String dir_)
この変更はstart時に反映されます。
実行中に行うと例外を発行します。
dir_
- ディレクトリpublic void setEnv(String name_, String value_)
name_
- 環境変数名value_
- 値public void removeEnv(String name_)
name_
- 環境変数名public void cmd(String cmd_)
ここで指定されたコマンド行は
cmd /c
の後ろに付加されstartで実行されます
cmd_
- コマンド文字列public void cmd(String[] cmd_)
ここで指定されたコマンド要素並びは
cmd /c
の後ろに付加されstartで実行されます
cmd_
- コマンド文字列並びpublic void cmd_start(String cmd_)
ここで指定されたコマンド文字列は
cmd /c
の後ろに付加され実行されます。
cmd_
- コマンド文字列public int cmd_start(String cmd_, ArrayList<String> result_)
ここで指定されたコマンド文字列は
cmd /c
の後ろに付加され実行されます。
cmd_
- コマンド文字列result_
- 結果public void cmd_start(String[] cmd_)
ここで指定されたコマンド要素並びは
cmd /c
の後ろに付加され実行されます。
cmd_
- コマンド文字列public int cmd_start(String[] cmd_, ArrayList<String> result_)
ここで指定されたコマンド要素並びは
cmd /c
の後ろに付加され実行されます。
cmd_
- コマンド要素並びresult_
- 結果public void exec(String cmd_)
cmd_
- コマンド文字列public void exec(String[] cmd_)
ここで指定されたコマンド要素並びで実行されます。 コマンドの設定だけで、実行はstart()で行います。
cmd_
- コマンド文字列並びpublic void exec_start(String cmd_)
cmd_
- コマンド文字列public int exec_start(String cmd_, ArrayList<String> result_)
cmd_
- コマンド文字列result_
- 結果public void exec_start(String[] cmd_)
cmd_
- コマンド文字列並びpublic int exec_start(String[] cmd_, ArrayList<String> result_)
cmd_
- コマンド文字列並びresult_
- 結果public void start()
cmd(String)
,cmd(String[])
,exec(String)
,exec(String[])
で設定されたコマンドを非同期実行します。
コマンド終了
public boolean is_running()
public int waitFor()
public int waitFor(ArrayList<String> result_)
result_
- ここに結果を得る(未)public int waitFor(long timeout_)
完了を待ちます。
タイムアウト時はコマンドプロセスを終了させます。
同期QUEUEを用いたsync.waitFor()ではタイムアウト時に
コマンドプロセスを終了させません。
timeout_
- タイムアウト時間をミリ秒で指定public boolean output(String str_)
利用者はsetOutput()を用いて、QUEUEによる通知を受けることも できるが、このメソッドをオーバーロードしてもよい。
str_
- 標準出力(+標準エラー出力)行public void errout(String str_)
output(String)
をオーバーロードすること。str_
- メッセージpublic void done(int status_)
終了ステータスを記憶した上で、 同期QUEUE(sync)に通知を出す。
終了イベントは同期QUEUE(sync)で待つこともできるが このメソッドをオーバーロードしてもよい
status_
- 終了ステータスpublic void done(Exception e_)
終了ステータス-2を記憶した上で、 同期QUEUE(sync)に通知を出す。
終了イベントは同期QUEUE(sync)で待つこともできるが このメソッドをオーバーロードしてもよい
e_
- 例外(内容は無視される)public void stop(boolean join_)
join_
- プロセス終了を待つ