【发布时间】:2015-10-19 06:12:32
【问题描述】:
我想从 shell 脚本运行 Java 程序。所以我做了类似下面的操作
我的测试Java文件如下
public class EchoTest {
public static void main (String args[]) {
System.out.println ("scuccess ..!!");
}
我的测试shell脚本文件如下
out=$(java EchoTest)
echo $out
我已经编译了 java 程序,然后我运行了那个 shell 脚本(比如 $sh Myscript.sh)。现在它将输出打印到控制台上。现在它工作正常。
如果我写一个像下面这样的程序(抛出一些异常)
public class EchoTest {
public static void main (String args[]) {
System.out.println ("Value is "+(2/0));
}
它只是将 java 异常打印到控制台上。但我的要求是我希望它在控制台上打印 0 或 1,即我想在我的 java 程序失败时获得 0(零),并希望在 java 程序成功执行时获得 1(一)。
【问题讨论】:
-
错误不会去正常输出,你试过
echo $err吗? -
嗨@FredericHenri,感谢您的及时回复,实际上我不想将Java程序的任何异常打印到控制台上只想在成功时返回零,在失败时返回1。请帮我这样做
-
如果您希望返回 unix 风格的返回值,请查看 System.exit(int)。
-
不像@chsh,只是我想在java程序失败时打印零或一些我自己的失败消息
-
2/0总是会抛出ArithemeticException因为数学不允许你除以零。