Java:在main方法中使用System.exit()和(String [] args)的目的

时间:2016-02-27 19:38:03

标签: java arrays

System.exit()有什么用?如果我不使用它会怎么样?我的教授用以下方式使用它:

 public static void main(String[] args) throws Exception {

    // make sure that you have the right number of arguments
    if (args.length != 1) {
      System.out.println("Usage: java FileDemo filename");
      System.exit(0);
    }

我不知道他为什么用它。另外我不明白他为什么要我确保我有正确数量的论点。他怎么知道(args.length !=1)?我们尚未在主要方法中填充String [] args

4 个答案:

答案 0 :(得分:2)

args的参数是从命令行提供的(或者如果使用IDE,则可以通过GUI自行设置命令行参数)。因此无论你是否在代码中看不到它们,它们都会被设置。

System.exit的文档说(我的粗体):

  

终止当前运行的Java虚拟机。该参数用作状态代码;按照惯例,非零状态代码表示异常终止。此方法调用类Runtime中的exit方法。此方法永远不会正常返回。

程序中的用法是无关紧要的,因为main在完成执行时会退出。但是,当用户向程序提供的参数数量不正确时,您的教授可能想要演示正确的操作。在这种情况下,您希望释放所有资源并优雅地exit。在这种情况下,使用System.exit完全没问题。

答案 1 :(得分:0)

当通过带参数的命令行调用时,JVM会自动填充

String[] args

第二个问题的答案在于here

答案 2 :(得分:0)

String[] args是程序的命令行参数,并指定为Java程序的一部分' entry pointSystem.exit(int)用于终止正在运行的JVM并将0返回给父进程。

答案 3 :(得分:0)

args []数组是从外部推入应用程序的args列表。在你的情况下,程序只需要1个参数。如果没有或超过1,程序就会终止。这里的System.exit(x)只是终止,因为程序似乎没有以正确的方式启动/使用,通常你的程序会触发帮助功能并打印正确用法的提示。 A"返回;"会做同样的事情,只是结束程序。