パッケージ 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自動認識を行い、簡易的なコマンドをセットするだけで実行できるように しています。
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドの概要

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

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

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

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `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を返しません