什么Exacly(args.length> 0)的意思?

Bit*_*pan 0 java program-entry-point

这对你们来说可能很简单,但由于我是java的新手,所以我想知道下一部分究竟发生了什么?

if (args.length > 0) {
    file = args[0];
}


public class DomTest1 {
    public static void main(String[] args) {
        String file = "test1.xml";
        if (args.length > 0) {
            file = args[0];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

NIN*_*OOP 9

这些被称为命令行参数,您可以在程序中将其作为String数组获取.这是Oracle教程

Java应用程序可以从命令行接受任意数量的参数.这允许用户在启动应用程序时指定配置信息.

用户在调用应用程序时输入命令行参数,并在要运行的类的名称后指定它们.

因此下面的代码:

String file = "test1.xml";
if (args.length > 0) {
   file = args[0];
}
Run Code Online (Sandbox Code Playgroud)

检查是否长度String[] args大于0,这意味着它检查是否输入了任何命令行参数或者数组是否为空.如果输入了命令行参数,则分配file该数组的第一个元素,否则默认filetest1.xml.您可以将您的课程运行为:

java DomTest1  someFileName.someExtension
Run Code Online (Sandbox Code Playgroud)

启动应用程序时,运行时系统会通过字符串数组将命令行参数传递给应用程序的main方法.在前面的示例中,命令行参数传递给包含单个String的数组中的DomTest1应用程序:"someFileName.someExtension".