1

可能重复:
Java 命令行参数。使用 * 作为乘法的参数

我只是想写一个简单的计算器。如果我输入 2 * 3 作为参数,则数组将如下所示:

[2,.classpath,.project,.settings,bin,src,3]

我们在公司“版本:Indigo Service Release 2 Build id:20120216-1857”中安装的所有 Eclipse 都会发生这种情况

我的一个朋友没有这个问题,那么有人知道这个问题的根源吗?

问候

尼科

4

3 回答 3

3

该参数*被 shell 解释器替换为当前工作目录中的文件列表。这通常发生在 Linux/Unix 平台上,但不会(必然)发生在 Windows 上。您的朋友使用 Windows 机器吗?

换句话说,这与 Java 无关,而是与 shell 命令解释器有关,它在执行java. 为避免这种情况,您需要用单引号引用敏感参数,例如java MyApp 2 '*' 3.

于 2012-06-04T07:52:34.427 回答
0

您在命令行上传递参数,其中 '*' 实际上是通配符;它将匹配当前目录中的所有文件(恰好是 .classpath、.project、.settings、bin、src。)

于 2012-06-04T07:53:18.267 回答
0

如果您在 Unix 下运行,这是命令行扩展的自然结果。使用\*"*"。如果您使用的是 Windows,则不会发生这种情况。

于 2012-06-04T07:53:20.190 回答