org.opengion.fukurou.util

## クラス Shell

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

-     public class Shell
      extends java.lang.Object

  Shell は、Runtime.exec の簡易的に実行するクラスです。 複雑な処理は通常の Runtime.exec を使用する必要がありますが，ほとんどの プロセス実行については、このクラスで十分であると考えています。 このクラスでは、OS(特にWindows)でのバッチファイルの実行において、 OS自動認識を行い、簡易的なコマンドをセットするだけで実行できるように しています。
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### ネストされたクラスの概要

    ネストされたクラス
    修飾子とタイプ | クラスと説明
    --- | ---
    `(package private) static class` | `Shell.ProcessReader` stdout と stderr の取得をスレッド化する為のインナークラスです。
    `(package private) static class` | `Shell.WaitJoin` スレッドのウェイト処理クラス 指定のタイムアウト時間が来ると、設定されたプロセスを、強制終了(destroy)します。

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

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

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

    コンストラクタ
    コンストラクタと説明
    `Shell()`

  - ### メソッドの概要

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

  - ### メソッドの詳細

    - #### setCommand

          public void setCommand(java.lang.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(java.lang.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(java.io.File dir)

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

    - #### setEnvP

          public void setEnvP(java.lang.String[] env)

      環境変数設定の配列指定します。 環境変数を、name=value という形式で、文字列配列で指定します。 null の場合は、現在のプロセスの環境設定を継承します。
      パラメータ:
        `env` - 文字列の配列。配列の各要素は、name=value という形式で環境変数設定を保持する。

    - #### exec

          public int exec()

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

    - #### getStdoutData

          public java.lang.String getStdoutData()

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

    - #### getStderrData

          public java.lang.String getStderrData()

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

    - #### getCommand

          public java.lang.String getCommand()

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

    - #### destroy

          public void destroy()

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

    - #### isEnd

          public boolean isEnd()

      プロセスが終了しているかどうか[true/false]を確認します。 この Process オブジェクトが表すサブプロセスは強制終了されます。
      戻り値:
        プロセスが終了しているかどうか[true/false]

    - #### exitValue

          public int exitValue()

      サブプロセスの終了コードを返します。
      戻り値:
        この Process オブジェクトが表すサブプロセスの終了コード。0 は正常終了を示す
      例外:
        `java.lang.IllegalThreadStateException` - この Process オブジェクトが表すサブプロセスがまだ終了していない場合

    - #### toString

          public java.lang.String toString()

      この Shell のインフォメーション(情報)を出力します。 コマンド、開始時刻、終了時刻、状態(実行中、終了)などの情報を、 出力します。
      オーバーライド:
        `toString` クラス内 `java.lang.Object`
      戻り値:
        インフォメーション(情報)
      変更履歴:

        5.5.7.2 (2012/10/09) HybsDateUtil を利用するように修正します。

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.