在Eclipse中将星号作为命令行参数传递给main

时间:2013-04-21 15:36:32

标签: java eclipse

我正在使用Eclipse中的Java项目,现在我想将星号*作为命令行参数传递给main。我知道这是一个通配符符号,并且在每个shell中只需将其放入引号即可正常工作,因此我不是java MyProgram *而是键入java MyProgram "*"

在Eclipse(运行配置 - >参数)中它无论如何都不起作用,即使使用引号它只列出目录中的所有文件。 '*'中的单引号与a*a或其他内容的工作方式相同,这意味着单引号(或撇号)也会传递到字符串中。

如何将*纳入主要内容?

2 个答案:

答案 0 :(得分:2)

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

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

双打报价无济于事。也没有用斜线逃避它。

从shell可以正常工作,虽然在Windows上警告至少你需要把它放在引号中。 Windows将在程序获取之前删除引号。

但是在Eclipse下,我找不到允许传递*。

的解决方法

答案 1 :(得分:-1)

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

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

并在运行配置中将星号作为该程序的唯一参数传递。即按预期打印单个星号字符。