为什么asterisk(*)不能作为String [] args中的普通字符传递?

时间:2011-04-11 09:12:36

标签: java

  

可能重复:
  Problem of * in Command line argument

我写了一个小型计算器的简单尝试,它有4个运算符(+, - ,*和/)。

当我通过命令行“java Calc 4 + 4”将任何其他3个操作符传递给我的程序时,它可以工作。但是,当我尝试传递“4 * 4”时,我得到一个Class.class的引用 - 为什么这个被客观化而不是作为普通字符串处理?这里发生了什么?

是否与使用*作为通配符的Windows命令行有关?如果是这样,我怎么能解决这个问题呢?

现在,作为一个简单的修复,我写了运算符乘以字符'x'。

TIA

3 个答案:

答案 0 :(得分:3)

shell将*替换为当前目录中的文件列表。使用单引号传递星号:'*'。

答案 1 :(得分:3)

尝试使用“*”等引号围绕*。 *是命令行上的保留符号。

答案 2 :(得分:0)

因为星号是OS依赖于char表示所有文件,所以你必须转义星号