System.exit(0)和System.exit(-1)之间的区别

时间:2011-08-04 07:26:39

标签: java exit system.exit

任何人都可以与我分享System.exit(0)System.exit(-1)之间的区别,如果您通过示例进行解释,这会有所帮助。

4 个答案:

答案 0 :(得分:16)

这只是流程退出代码的差异。因此,如果有任何事情要根据退出代码采取行动(其中0通常是成功,非零通常表示错误),您可以控制他们看到的内容。

举个例子,拿这个小的Java程序,它使用命令行参数的数量作为退出代码:

public class Test {    
    public static void main(String[] args) throws Exception {
        System.exit(args.length);
    }
}

现在从bash shell运行它,其中&&表示“如果第一个命令成功则执行第二个命令”我们可以:

~ $ java Test && echo Success!
Success!

~ $ java Test boom && echo Success!

答案 1 :(得分:3)

System.exit(0)表示它是程序的正常退出。但System.exit(-1)表示退出可能是由于某些错误。任何其他数字都表示异常退出。

答案 2 :(得分:0)

System.exit(int)的参数是程序的返回值,可以在批处理作业中评估(通常用于控制台程序)。按照惯例,除0之外的每个值都会导致出错。

答案 3 :(得分:0)

如果在Linux / Unix中运行Java程序,可以使用echo $?命令检查结果。这就是为什么调用System.exit(0)很重要(如果你不这样做就行了)如果一切都很好,否则System.exit(non-zero)