シェルに終了コードを渡す方法

Linux(*BSD)などを使用していて、Javaプログラムとシェルスクリプトとの連携を取るため
Javaプログラムの終了コード(終了ステータス)を取得したい場合があると思います。
このような場合は、System.exitを使えば簡単に実現することができます。
以下にサンプルソースと実行例をいくつか紹介します。

System.exitを使う

System.exitを使用すれば、シェルスクリプトに終了ステータス(終了コード)を返却することができます。
ただし、返却する値によっては意図しない値が返却されますので、意図しない値が返却される実行例も記します。

4つのサンプルソースを用意しました。
すべて同じコードですが、返却する値が違います。

実行例

コンパイルして実行した時の出力です。

$ javac ExitCode*.java

上記の出力からわかるように、シェルの$?で最後に実行したコマンドの終了コードを表示します。
しかし、256, -1は意図した値になっていません。
これは、シェルでは1バイト(char)として扱っているためだと思われます。
終了コードの値には気をつけてシェルスクリプトとの連携を行ってください。

以上、シェルスクリプトにJavaで作成したプログラムの終了コード(終了ステータス)を返却する方法でした。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS