如何解析" *"把Java程序作为输入参数?

时间:2017-05-03 11:42:56

标签: java shell

当我只使用java -Xxx *时,程序会将当前路径中的所有内容作为输入。

如何才能将*字符串作为输入?

1 个答案:

答案 0 :(得分:2)

这不是你用Java做的任何事情;这是bash filename expansions的行为:

  

分词后[...] Bash扫描每个单词的字符'*','?'和'['。如果出现其中一个字符,则该单词被视为模式,并替换为与该模式匹配的按字母顺序排列的文件名列表(请参阅模式匹配)。如果找不到匹配的文件名,并且禁用了shell选项nullglob,则该单词保持不变。

正如Jesper在评论中指出的那样,您可以通过引用*字符来避免此行为:

java -Xxx '*'

或者,正如Ilya所说,你可以逃脱它:

java -Xxx \*