2017-05-03 34 views
0

当我使用java -Xxx *时,程序会将当前路径中的所有内容作为输入。如何将“*”解析为Java程序作为输入参数?

我怎样才能得到*字符串作为输入?

+3

也就是说因为shell(在Linux或macOS上的终端)用当前目录中的所有文件替换'*'。引用它:'java -Xxx'*'' – Jesper

+1

尝试转义*字符:'java -Xxx \ *' –

回答

2

这不是你在Java中所做的任何事情;这是一个行为bash filename expansions

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

正如加斯帕在评论中指出,可以通过引述*字符避免此行为:

java -Xxx '*' 

或者,正如伊利亚指出,你可以逃脱它:

java -Xxx \* 
相关问题