对于你们这可能很简单但是因为我是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];
}
}
}
答案 0 :(得分:9)
这些被称为命令行参数,您可以在程序中将其作为String数组获取。这是Oracle tutorial
Java应用程序可以从命令行接受任意数量的参数。这允许用户在启动应用程序时指定配置信息。
用户在调用应用程序时输入命令行参数,并在要运行的类的名称后指定它们。
因此下面的代码:
String file = "test1.xml";
if (args.length > 0) {
file = args[0];
}
检查String[] args
的长度是否大于0
,这意味着它检查是否输入了任何命令行参数或者数组是否为空。如果输入了命令行参数,则将file
分配给该数组的第一个元素,或者将file
默认分配给test1.xml
。您可以将您的课程命名为:
java DomTest1 someFileName.someExtension
启动应用程序时,运行时系统会通过字符串数组将命令行参数传递给应用程序的main方法。在前面的示例中,命令行参数传递给包含单个String的数组中的 DomTest1 应用程序:“someFileName.someExtension”。
答案 1 :(得分:1)
启动应用程序时,运行时系统通过字符串数组将命令行参数传递给应用程序的main方法
args
为an array且if (args.length > 0)
是条件是否为空的条件。
答案 2 :(得分:1)
您在这里制作字符串引用并将值放入其中。 你的第一个价值是> test1.xml。它是文件的名称,但您将放入String as String(表示“test1.xml”)。然后从命令行参数中获取值。并通过命令行位置0覆盖您的字符串引用值。 所以你引用值将始终是命令行0位置值,如果你没有传递任何值,那么它会给你text1.xml
答案 3 :(得分:1)
main()
方法是java程序的执行开始。传递给main()方法的所有参数都是String args[]
。它基本上是一个String数组。除了仅使用args
之外,变量名可以更改为其他名称,您可以使用String var[]
或`String datas []或其他内容。
现在,来到您的计划if
中的if (args.length > 0)
条件检查。
我将解释为什么arg.length
是如此的基本原理。
从命令行或类似终端执行java程序时,它以java customName 运行。假设你想要传递给java程序的参数为java customName param1 param2。参数与命令行一起传递。现在java中的解释器解释这些参数(即param1 param2)并将它们传递给程序的main()方法。这些参数存储在args[]
字符串数组中。
现在运行java程序时,args [0]和args [1]将被允许。如果没有传递参数,那么args []的值将为null,并且仍将被标识为具有null参数的String数组对象(没有元素)。
在这种情况下,args.length
将等于0.
答案 4 :(得分:0)
该行正在检查参数是否实际在命令行中输入。
如果输入任何内容,则第一个是文件名。
如果未输入,则test1.xml
是默认值。
答案 5 :(得分:0)
args.length值是args数组中的项目数。
如果不传递命令行参数,则总会得到“有0个命令行参数”。
这就是你检查的原因
if (args.length > 0)
但是尝试运行这样的程序:java PrintArgs你好我的名字是mikki2 java PrintArgs之后的单词被称为命令行参数,因为它们是从命令行传递给你的程序的参数