パッケージ org.opengion.fukurou.util

# クラス Shell

java.lang.Object
org.opengion.fukurou.util.Shell

public class Shell extends Object
Shell は、Runtime.exec の簡易的に実行するクラスです。 複雑な処理は通常の Runtime.exec を使用する必要がありますが，ほとんどの プロセス実行については、このクラスで十分であると考えています。 このクラスでは、OS(特にWindows)でのバッチファイルの実行において、 OS自動認識を行い、簡易的なコマンドをセットするだけで実行できるように しています。

導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final int`
  `CANCEL`
  Shell オブジェクトの状態を表します。
  `static final int`
  `ERROR`
  Shell オブジェクトの状態を表します。
  `static final int`
  `OK`
  Shell オブジェクトの状態を表します。
  `static final int`
  `RUNNING`
  Shell オブジェクトの状態を表します。

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `Shell()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `void`
  `destroy()`
  サブプロセスを終了します。
  `int`
  `exec()`
  プロセスの実行処理。
  `int`
  `exitValue()`
  サブプロセスの終了コードを返します。
  `String`
  `getCommand()`
  プロセスが実際に実行するコマンドを取得します。
  `String`
  `getStderrData()`
  プロセスの実行時のエラー出力を取得します。
  `String`
  `getStdoutData()`
  プロセスの実行時の標準出力を取得します。
  `boolean`
  `isEnd()`
  プロセスが終了しているかどうか[true/false]を確認します。
  `void`
  `setCommand(String cmd)`
  プロセスを実行する時に引き渡すコマンド。
  `void`
  `setCommand(String cmd, boolean batch)`
  プロセスを実行する時に引き渡すコマンド 第２引数には、コマンドがBATかEXEかを指定できます。
  `void`
  `setEnvP(String... env)`
  環境変数設定の配列指定します。
  `void`
  `setTimeout(int tout)`
  プロセスの実行処理のタイムアウトを設定します。
  `void`
  `setWait(boolean flag)`
  プロセスの実行処理の終了を待つかどうか。
  `void`
  `setWorkDir(File dir)`
  作業ディレクトリを指定します。
  `String`
  `toString()`
  この Shell のインフォメーション(情報)を出力します。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## フィールド詳細

  - ### OK

    public static final int OK
    Shell オブジェクトの状態を表します。正常 0
    関連項目:
      - 定数フィールド値

  - ### RUNNING

    public static final int RUNNING
    Shell オブジェクトの状態を表します。実行中 1
    関連項目:
      - 定数フィールド値

  - ### CANCEL

    public static final int CANCEL
    Shell オブジェクトの状態を表します。取消 9
    関連項目:
      - 定数フィールド値

  - ### ERROR

    public static final int ERROR
    Shell オブジェクトの状態を表します。異常終了(負) -1
    関連項目:
      - 定数フィールド値

- ## コンストラクタの詳細

  - ### Shell

    public Shell()
    デフォルトコンストラクター
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### setCommand

    public void setCommand(String cmd, boolean batch)
    プロセスを実行する時に引き渡すコマンド 第２引数には、コマンドがBATかEXEかを指定できます。 true の場合は，バッチコマンドとして処理されます。
    パラメータ:
      `cmd` - コマンド
      `batch` - true:バッチファイル/false:EXEファイル
    変更履歴:
      3.3.3.0 (2003/07/09) Windows XP 対応, 3.7.0.1 (2005/01/31) Windows 2003 対応, Windows 95 除外, 3.8.9.2 (2007/07/13) Windows Vista 対応

  - ### setCommand

    public void setCommand(String cmd)
    プロセスを実行する時に引き渡すコマンド。
    パラメータ:
      `cmd` - EXEコマンド

  - ### setWait

    public void setWait(boolean flag)
    プロセスの実行処理の終了を待つかどうか。
    パラメータ:
      `flag` - true:待つ(デフォルト)/ false:待たない

  - ### setTimeout

    public void setTimeout(int tout)
    プロセスの実行処理のタイムアウトを設定します。 ゼロ(0) の場合は、割り込みが入るまで待ちつづけます。
    パラメータ:
      `tout` - タイムアウト時間(秒) ゼロは、無制限

  - ### setWorkDir

    public void setWorkDir(File dir)
    作業ディレクトリを指定します。 シェルを実行する、作業ディレクトリを指定します。 指定しない場合は、このJava仮想マシンの作業ディレクトリで実行されます。
    パラメータ:
      `dir` - 作業ディレクトリ

  - ### setEnvP

    public void setEnvP(String... env)
    環境変数設定の配列指定します。 環境変数を、name=value という形式で、文字列配列で指定します。 null の場合は、現在のプロセスの環境設定を継承します。
    パラメータ:
      `env` - 文字列の配列(可変長引数)。

  - ### exec

    public int exec()
    プロセスの実行処理。
    戻り値:
      サブプロセスの終了コードを返します。0 は正常終了を示す

  - ### getStdoutData

    public String getStdoutData()
    プロセスの実行時の標準出力を取得します。
    戻り値:
      実行時の標準出力文字列

  - ### getStderrData

    public String getStderrData()
    プロセスの実行時のエラー出力を取得します。
    戻り値:
      実行時の標準出力文字列

  - ### getCommand

    public String getCommand()
    プロセスが実際に実行するコマンドを取得します。 バッチコマンドかどうかで、実行されるコマンドが異なりますので、 ここで取得して確認することができます。 主にデバッグ用途です。
    戻り値:
      実行時の標準出力文字列

  - ### destroy

    public void destroy()
    サブプロセスを終了します。 この Process オブジェクトが表すサブプロセスは強制終了されます。

  - ### isEnd

    public boolean isEnd()
    プロセスが終了しているかどうか[true/false]を確認します。 この Process オブジェクトが表すサブプロセスは強制終了されます。
    戻り値:
      プロセスが終了しているかどうか[true/false]
    変更履歴:
      6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### exitValue

    public int exitValue()
    サブプロセスの終了コードを返します。
    戻り値:
      この Process オブジェクトが表すサブプロセスの終了コード。0 は正常終了を示す
    例外:
      `IllegalThreadStateException` - この Process オブジェクトが表すサブプロセスがまだ終了していない場合
    変更履歴:
      6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### toString

    public String toString()
    この Shell のインフォメーション(情報)を出力します。 コマンド、開始時刻、終了時刻、状態(実行中、終了)などの情報を、 出力します。
    オーバーライド:
      `toString` クラス内 `Object`
    戻り値:
      インフォメーション(情報)
    変更履歴:
      5.5.7.2 (2012/10/09) HybsDateUtil を利用するように修正します。, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
    このﾒｿｯﾄﾞは、nullを返しません