System.exit(1)中在JAVA中这个1是怎么传递的呀?
以下是我在JB6.0中测试的,经由JB的UML找到了system-RuntimeSecurityManager等class,但是还是不明白最后这个1为什么会在process finished with exit code 1?jb6的运行状态行出现。
原代码:
public class RandomBounds05041501
{
static void usage()
{
System.out.println("Usage: \n\t" + "RandomBounds lower\n\t" + "RandomBounds upper");
System.exit(1);
}
public static void main(String[] args)
{
System.out.println(args.length);
if(args.length != 1) usage();
if(args[0].equals("lower"))
{
while(Math.random() != 0.0); // Keep trying
System.out.println("Produced 0.0!");
}
else if(args[0].equals("upper"))
{
while(Math.random() != 1.0); // Keep trying
System.out.println("Produced 1.0!");
}
else
usage();
}
}
找寻status 1的过程:
1、
System class:
public static void exit(int status) {
Runtime.getRuntime().exit(status);
}
2、
Runtime class:
public void exit(int status) {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkExit(status);
}
Shutdown.exit(status);
}
3、
SecurityManager class:
public void checkExit(int status) {
checkPermission(new RuntimePermission("exitVM"));
}