スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Java終了時のステータスコードあれこれ

 javaの終了方法は色々ある。
 exit、halt、mainでのreturn、例外スローなど。
 それぞれの終わらせ方でステータスコード(ERRORLEVEL)がどうなるかを調べてみた。




■調査方法
 JavaのSystem.exitを-10で呼び出して、ERRORLEVELを-10で初期化
 調査対象の方法を実行し、ERRORLEVELを確認

■環境
 OS:Windows Vista
 Java:1.6

■結果
終了方法ステータスコード
System.exit( N )N
return0
halt1
throw new Exception1
throw new Error1
タスクマネージャで強制終了1


 ということで、exitは指定した値(あたりまえだが)、returnは 0 となる。
 それ以外の終了方法は全て1。

 mainで例外を投げたりしてもステータスコードに1をちゃんとセットしてくれるようだ。


■ソース
  public static void main(String[] args) throws Exception{
    int num = Integer.parseInt(args[0]);
    switch(num){
    case 1:
      System.out.println("System.exit(1)");
      System.exit(1);
      break;
    case 2:
      System.out.println("return");
      return ;
    case 3:
      System.out.println("halt");
      Runtime.getRuntime().halt(1);
      break;
    case 4:
      System.out.println("throw new Exception;");
      throw new Exception("");
    case 5:
      System.out.println("throw new Error");
      throw new Error("");
    case 6:
      System.out.println("タスクマネージャで終了させる");
      Thread.sleep(1000000);
      break;
    }
    System.exit(num);
  }


■関連する記事
javaで外部コマンド呼出し(exec)したときの戻り値が意図しない値になった

以上。
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

検索フォーム
プロフィール

takuan93

Author:takuan93
本ブログの説明書→「ReadMe」

管理者に連絡

カテゴリ
WiX (5)
Ant (1)
フリーエリア
最新記事
カウンター
カレンダー
06 | 2018/07 | 08
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。