我正在处理Eclipse中的一个Java项目,现在我想将星号*作为命令行参数传递给main。我知道这是一个通配符,并且在每个shell中它都可以很好地工作,只需将它放在引号中,所以我输入java MyProgram "*"而不是java MyProgram *。
在Eclipse中(运行Cofigurations ->参数),这两种方式都不起作用,即使使用引号,它也只列出目录中的所有文件。'*'中的单引号与a*a或其他东西的工作方式相同,这意味着单引号(或撇号)也将被传递到字符串中。
你有什么办法让*进入主网络吗?
发布于 2015-08-22 01:07:52
Eclipse将*扩展为属性名称列表。因此,程序实际上传递给(在我的系统上)一个args数组:.classpath,.project,.settings,.bin,.src,而不是*。
如果我把任何文本加上,比如"X",我就会得到"X*“。
双引号不起作用。用斜杠转义也不会。
从shell上看,它工作得很好,尽管在Windows上会有一个警告,说明您确实需要将它放在引号中。Windows将在程序获取引号之前将其去掉。
但是在Eclipse下,我找不到只允许传递*的解决方法。
发布于 2013-04-22 03:28:56
这是你自己程序中的一个编程错误。Eclipse将主要参数逐字传递给您的程序。您可以通过创建一个Java程序来轻松地检查这一点,该程序在main中只有这一行:
System.out.println(args[0]);并将星号作为运行配置中该程序的唯一参数进行传递。如预期的那样打印单个星号字符。
https://stackoverflow.com/questions/16132890
复制相似问题