その他/シェルに終了コードを渡す方法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* シェルに終了コードを渡す方法 [#yd6b0062]
Linux(*BSD)などを使用していて、Javaプログラムとシェルスク...
Javaプログラムの終了コード(終了ステータス)を取得したい場...
このような場合は、System.exitを使えば簡単に実現することが...
以下にサンプルソースと実行例をいくつか紹介します。
#contents
* System.exitを使う [#g7ab7522]
System.exitを使用すれば、シェルスクリプトに終了ステータス...
ただし、返却する値によっては意図しない値が返却されますの...
4つのサンプルソースを用意しました。~
返却する値が違うだけです。~
- 0を返却
#ref(ExitCode0.java)
class ExitCode0 {
public static void main(String[] args) {
int exitcode = 0;
System.out.println("exitcode: " + exitcode);
System.exit(exitcode);
}
}
- 1を返却
#ref(ExitCode1.java)
class ExitCode1 {
public static void main(String[] args) {
int exitcode = 1;
System.out.println("exitcode: " + exitcode);
System.exit(exitcode);
}
}
-256を返却
#ref(ExitCode256.java)
class ExitCode256 {
public static void main(String[] args) {
int exitcode = 256;
System.out.println("exitcode: " + exitcode);
System.exit(exitcode);
}
}
- -1を返却
#ref(ExitCodeMinus.java)
class ExitCodeMinus1 {
public static void main(String[] args) {
int exitcode = -1;
System.out.println("exitcode: " + exitcode);
System.exit(exitcode);
}
}
* 実行例 [#wdf27836]
コンパイルして実行した時の出力です。
$ javac ExitCode*.java
-0を返却を実行
$ java ExitCode0
exitcode: 0
$ echo $?
0
-1を返却を実行
$ java ExitCode1
exitcode: 1
$ echo $?
1
-256を返却を実行~
&color(red){256ではなく、シェルでは0となっています。};
$ java ExitCode256
exitcode: 256
$ echo $?
0
- -1を返却を実行~
&color(red){-1ではなく、シェルでは255となっています。};
$ java ExitCodeMinus1
exitcode: -1
$ echo $?
255
上記の出力からわかるように、シェルの$?で最後に実行したコ...
しかし、256, -1は意図した値になっていません。~
これは、シェルでは1バイト(char)として扱っているためだと思...
終了コードの値には気をつけてシェルスクリプトとの連携を行...
以上、シェル(シェルスクリプト)にJavaで作成したプログラム...
終了行:
#navi(../)
* シェルに終了コードを渡す方法 [#yd6b0062]
Linux(*BSD)などを使用していて、Javaプログラムとシェルスク...
Javaプログラムの終了コード(終了ステータス)を取得したい場...
このような場合は、System.exitを使えば簡単に実現することが...
以下にサンプルソースと実行例をいくつか紹介します。
#contents
* System.exitを使う [#g7ab7522]
System.exitを使用すれば、シェルスクリプトに終了ステータス...
ただし、返却する値によっては意図しない値が返却されますの...
4つのサンプルソースを用意しました。~
返却する値が違うだけです。~
- 0を返却
#ref(ExitCode0.java)
class ExitCode0 {
public static void main(String[] args) {
int exitcode = 0;
System.out.println("exitcode: " + exitcode);
System.exit(exitcode);
}
}
- 1を返却
#ref(ExitCode1.java)
class ExitCode1 {
public static void main(String[] args) {
int exitcode = 1;
System.out.println("exitcode: " + exitcode);
System.exit(exitcode);
}
}
-256を返却
#ref(ExitCode256.java)
class ExitCode256 {
public static void main(String[] args) {
int exitcode = 256;
System.out.println("exitcode: " + exitcode);
System.exit(exitcode);
}
}
- -1を返却
#ref(ExitCodeMinus.java)
class ExitCodeMinus1 {
public static void main(String[] args) {
int exitcode = -1;
System.out.println("exitcode: " + exitcode);
System.exit(exitcode);
}
}
* 実行例 [#wdf27836]
コンパイルして実行した時の出力です。
$ javac ExitCode*.java
-0を返却を実行
$ java ExitCode0
exitcode: 0
$ echo $?
0
-1を返却を実行
$ java ExitCode1
exitcode: 1
$ echo $?
1
-256を返却を実行~
&color(red){256ではなく、シェルでは0となっています。};
$ java ExitCode256
exitcode: 256
$ echo $?
0
- -1を返却を実行~
&color(red){-1ではなく、シェルでは255となっています。};
$ java ExitCodeMinus1
exitcode: -1
$ echo $?
255
上記の出力からわかるように、シェルの$?で最後に実行したコ...
しかし、256, -1は意図した値になっていません。~
これは、シェルでは1バイト(char)として扱っているためだと思...
終了コードの値には気をつけてシェルスクリプトとの連携を行...
以上、シェル(シェルスクリプト)にJavaで作成したプログラム...
ページ名: