似乎this是从return status code
获得main
的一种方法。
但我想知道这int
去哪儿了?我在eclipse上尝试过,但是我没有在控制台上看到它。
我如何获得status code
public static void main(String[] args){
int status = 123;
System.exit(status);
}
答案 0 :(得分:5)
退出代码通常返回到运行应用程序的脚本或程序,例如,我编写了以下简单的java程序
class Test {
public static void main(String[] args) {
System.exit(123);
}
}
然后我使用javac Test.java
编译它
接下来,我编写了一个简单的bash脚本,它将运行java Test
然后打印出像这样的退出代码
#!/bin/bash
java Test
echo $?
当我运行bash脚本时,数字123
将打印到屏幕上,因为$?
是运行的最后一个命令的退出代码。
答案 1 :(得分:4)
该值称为exit status
计算机编程中进程的退出状态或返回代码是 从子进程(或被调用者)传递给父进程的小数字 进程(或调用者)完成特定的执行后 程序或委派任务。
这是一个用于演示它的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(?)
中传递给它的值返回到其父进程,然后将其打印出来。
答案 2 :(得分:3)
退出代码(status)在JVM终止时返回给操作系统,所以如果你通过终端/命令行运行它,你会看到程序是否异常终止。
答案 3 :(得分:1)
C:\JavaTools>javac SystemExit.java
C:\JavaTools>java SystemExit
C:\JavaTools>echo %ERRORLEVEL%
123
答案 4 :(得分:0)
退出代码将返回给操作系统。返回0表示程序退出时没有错误,反之亦然。
返回不同的错误代码意味着不同的原因。这可以帮助OS(或父进程)找出该程序的错误。