[英]where does the system.exit() goes to in Java?
看来这是从main
取得return status code
一种方法。 但我想知道这个int
会去哪里? 我在eclipse上尝试过,但是在控制台上看不到它。 我如何获得status code
public static void main(String[] args){
int status = 123;
System.exit(status);
}
退出代码通常返回到运行您的应用程序的脚本或程序,例如,我编写了以下简单的Java程序
class Test {
public static void main(String[] args) {
System.exit(123);
}
}
然后,我使用javac Test.java
对其进行javac Test.java
接下来,我编写了一个简单的bash脚本,该脚本将运行java Test
,然后打印出这样的退出代码
#!/bin/bash
java Test
echo $?
当我运行bash脚本时,数字123
将作为$?
打印到屏幕上$?
是最后运行的命令的退出代码。
该值称为退出状态
计算机编程中某个进程的退出状态或返回码是一小部分,它在完成特定过程或委托任务后从子进程(或被调用方)传递给父进程(或调用方)。
这是一个小的Java测试来演示它
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Foo {
public static void main(String[] args) throws Exception {
if (args.length != 0)
System.exit(Integer.parseInt(args[0]));
ProcessBuilder builder = new ProcessBuilder(Arrays.asList("java", "Foo", "42"));
Process process = builder.start();
System.out.println(process .waitFor());
}
}
编译并运行该程序,不带任何参数。 它将打印
42
这个Java程序启动一个子进程。 当该进程结束时,它将在System.exit(?)
传递给它的值返回给其父进程,然后将其打印出来。
退出代码(状态)会在JVM终止时返回到操作系统,因此,如果要通过终端/命令行运行它,则会看到程序是否异常终止。
C:\JavaTools>javac SystemExit.java
C:\JavaTools>java SystemExit
C:\JavaTools>echo %ERRORLEVEL%
123
退出代码将返回到操作系统。 返回0表示程序退出时没有错误,反之亦然。
返回不同的错误代码意味着不同的原因。 这可以帮助OS(或父进程)找出程序出了什么问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.