我正在使用Eclipse中的Java项目,现在我想将星号*
作为命令行参数传递给main。我知道这是一个通配符符号,并且在每个shell中只需将其放入引号即可正常工作,因此我不是java MyProgram *
而是键入java MyProgram "*"
。
在Eclipse(运行配置 - >参数)中它无论如何都不起作用,即使使用引号它只列出目录中的所有文件。 '*'
中的单引号与a*a
或其他内容的工作方式相同,这意味着单引号(或撇号)也会传递到字符串中。
如何将*
纳入主要内容?
答案 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]);
并在运行配置中将星号作为该程序的唯一参数传递。即按预期打印单个星号字符。