3

我正在Eclipse中处理一个Java项目,现在我想将星号*作为命令行参数传递给main。我知道这是一个通配符,在每个 shell 中,只需将它放在引号中就可以正常工作,所以java MyProgram *我不用输入java MyProgram "*".

在 Eclipse (Run Cofigurations -> Arguments) 中,这两种方式都不起作用,即使有引号,它也只会列出目录中的所有文件。单引号与 in 的'*'工作方式相同a*a,这意味着单引号(或撇号)也将传递到字符串中。

任何想法如何*进入主要?

4

2 回答 2

2

Eclipse 将 * 扩展为属性名称列表。所以程序实际上(在我的系统上)传递了一个 args 数组: .classpath, .project, .settings, .bin, .src 而不是 * 。

如果我将任何文本放在 中,例如“X ”,那么我会得到“X*”。

双引号没有帮助。也不会用斜线转义它。

从 shell 中它可以正常工作,尽管在 Windows 上至少有一个警告,您确实需要将它放在引号中。Windows 将在程序获取引号之前去掉引号。

但是在 Eclipse 下,我找不到只允许传递 * 的解决方法。

于 2015-08-21T17:07:51.987 回答
-2

这是您自己程序中的编程错误。Eclipse 将主要参数逐字传递给您的程序。您可以通过创建一个在 main 中只有这一行的 Java 程序来轻松检查这一点:

System.out.println(args[0]);

并在运行配置中将星号作为唯一参数传递给该程序。正如预期的那样,打印单个星号字符。

于 2013-04-21T19:28:56.287 回答