Java 为什么星号(*)不能作为字符串[]args中的普通字符传递?

Java 为什么星号(*)不能作为字符串[]args中的普通字符传递?,java,Java,可能重复: 我写了一个小计算器的简单尝试,它有4个运算符(+、-、*和/) 当我通过命令行“JavaCalc4+4”将任何其他3个操作符传递给我的程序时,它就工作了。然而,当我尝试传递“4*4”时,我得到了一个Class.Class的引用-为什么这是对象化的而不是作为普通字符串处理?这里发生了什么 是否与Windows命令行使用*作为通配符有关?如果是这样的话,我该怎么做 现在,作为一个简单的修正,我已经编写了运算符乘以字符“x” TIAshell将*替换为当前目录中的文件列表。使用单引号传递

可能重复:

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

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

是否与Windows命令行使用*作为通配符有关?如果是这样的话,我该怎么做

现在,作为一个简单的修正,我已经编写了运算符乘以字符“x”


TIA

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

因为星号是OS dependens char,表示所有文件,所以必须将星号转义为“*”尝试用引号将*括起来,如“*”。*是命令行上的保留符号。

Well spot@Joachim Sauer这应该是问题所在。