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