JVM如何解析命令行参数?

时间:2018-08-25 15:37:46

标签: java parsing jvm command-line-arguments

谁能解释我JVM如何精确地从命令行解析字符串/参数并从中创建字符串数组(String [] args)?如果可能的话,我实际上想看一下代码。

比方说,我有一个从命令行获取输入的已编译Java程序:

$ java Test Hi, now you "parse me" ""plea"se

它使用以下值创建数组:

 args[0] = Hi,
 args[1] = now
 args[2] = you
 args[3] = parse me
 args[4] = please

我假设命令行中的文本作为String传递给JVM,然后JVM根据一些规则拆分字符串并从中创建String []数组。

通过观察,我的观察方式是这样的:

除非空格位于一对双引号"之间,否则它将使用空格分隔符从命令行中分隔整个输入字符串。它认为双引号"\是特殊字符,与bash相同,并且与bash完全相同。因此,只要找到",它就会尝试将其与另一个"匹配,并且双引号对之间的所有内容都被视为一个字符串,除非它被\所转义。

0 个答案:

没有答案