查看System.exit()的代码,你会发现他是这样写的:

Runtime.getRuntime().exit();//来自http://www.cnblogs.com/Theladyflower/p/4018417.html的解析

关键在Runtime这里类里:

(这里是关于Runtime类的使用)http://lavasoft.blog.51cto.com/62575/15565/

(这里是关于exit和halt的区别)http://www.tuicool.com/articles/nuymQv

                http://qtlkw.iteye.com/blog/1018872

 

可是,我们还是不知道exit(int status)中status中这个参数是干什么的,于是,我就想找c的源码了,但是http://bbs.csdn.net/topics/230017132里发现了很好的说明:

 

可以返回给其他进程的调用者一个调用的返回码,以根据返回码采取不同的策略。


好比,在 Java 中调用其他语言写的程序,在用 Runtime#exec 执行后得到 Process,
再根据 Process#exitValue 方法就可以获得所调用程序的返回码,如果返回的 0,那
我们就知道该调用是正常结束了,非 0 的话该调用是非正常结束的,可以根据返回码
进行不同的处理。

而 Java 程序中也可以使用 System#exit 或 Runtime#exit 方法来告诉调用进程该程
序的执行是否是正常结束了。

  其实我们也可以从halt方法中的status参数推断出来,在JNI中没有根据status做什么,只是把他返回了而已。