を返す:java.lang.NullPointerExceptionが、私は次のようにbashのからいくつかのJavaバイナリを実行しているコード
run_me.sh
$JAVA_HOME/bin/java -Djava.library.path=path1/libs/opencv/lib -jar path2/bin/application.jar
echo "Exit code: "$?
が、アプリケーションの内部で、私はjava.lang.NullPointerException
を取得し、howewerの戻りコードは0ですが、アプリケーションが失敗したことをbashから理解するには、ゼロ以外の終了コードが必要です。
このようなケースを処理する適切な方法は何ですか?
アップデート:私はinner_package_class
リターンコードで例外をスローしたときにここで
は、catchブロックを試してみてください「ネストされた」のexxampleですが)(0だからinner_package_class.method1から例外を取得するための適切な方法何です?
public static void main(String[] args) {
try {
inner_package_class.method1();
System.out.printf("After inner method!\n");
} catch (Throwable t) {
System.exit(1);
}
}
public class inner_package_class {
public static void method1() {
System.out.printf("From inner method!\n");
try
{
throw new Exception("Some exception 2.");
} catch (Throwable t) {
}
}
}
アップデート1: この作業予想通り(非ゼロの終了コードを返します)。
public class inner_package_class {
public static void method1() throws Exception {
System.out.printf("From inner method!\n");
throw new Exception("Some exception 2.");
}
}
戻りコードはアプリケーションの機能によって異なりますが、デフォルトはここでは「return 0」です。変更できるかどうかわかりません。 – SomeJavaGuy
質問を編集し、その例外のスタックトレースを含めてください。特に、メインスレッドで例外が発生するかどうかは関係ありません。そうでない場合は、メインスレッド(またはスレッドがSystem.exitを呼び出す)に障害を通知する必要があります。 – VGR