'*'作为参数更改为“.classpath,.project,.settings,bin,src,”

时间:2012-06-04 07:50:08

标签: java arrays parameters multiplication

  

可能重复:
  Java command line arguments. Using * as an argument for multiplication

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

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

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

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

问候

尼科

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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