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

标签 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在主方法中。

最佳答案

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

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

Terminates the currently running Java Virtual Machine. The argument serves as a status code; by convention, a nonzero status code indicates abnormal termination. This method calls the exit method in class Runtime. This method never returns normally.

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

关于Java:在 main 方法中使用 System.exit() 和 (String [] args) 的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35674514/

相关文章:

java - Swing - 如何将自定义字体添加到 JTextArea?

java - 添加子选择条件?

c++ - 数组旋转和删除

Javascript将变量保存到数组并在循环中获取值

java - 尝试创建一个我可以进一步操作的学生数据库

java - FileService 中的变量 lock 是什么意思?

java - 将 Char 作为参数传递给其重载构造函数时,StringBuffer 的行为如何?

java - 如何从普通的 java 类调用 javafx

java - 如何使用类 Math 用从 0 到 99 的随机数填充数组?

c - 对数组中的元素进行排序以返回特定整数第一次出现的索引