Java 在Eclipse中将星号作为命令行参数传递给main
我正在Eclipse中处理一个Java项目,现在我想将星号Java 在Eclipse中将星号作为命令行参数传递给main,java,eclipse,Java,Eclipse,我正在Eclipse中处理一个Java项目,现在我想将星号*作为命令行参数传递给main。我知道这是一个通配符,在每个shell中,只要把它放在引号中就可以很好地工作,所以我不想用javamyprogram*而是键入javamyprogram*“ 在Eclipse中(运行Cofigurations->Arguments),这两种方式都不起作用,即使使用引号,它也只列出目录中的所有文件。“*”中的单引号的工作方式与a*a或其他内容相同,这意味着单引号(或撇号)也将被传递到字符串中 你知道如何把*放
*
作为命令行参数传递给main。我知道这是一个通配符,在每个shell中,只要把它放在引号中就可以很好地工作,所以我不想用javamyprogram*
而是键入javamyprogram*“
在Eclipse中(运行Cofigurations->Arguments),这两种方式都不起作用,即使使用引号,它也只列出目录中的所有文件。“*”
中的单引号的工作方式与a*a
或其他内容相同,这意味着单引号(或撇号)也将被传递到字符串中
你知道如何把
*
放到主程序中吗?这是你自己程序中的一个编程错误。Eclipse将主要参数逐字传递给您的程序。您可以通过创建一个Java程序来轻松检查这一点,该Java程序的main中只有这一行:
System.out.println(args[0]);
并在运行配置中将星号作为唯一参数传递给该程序。这将按预期打印单个星号字符。Eclipse将*扩展为属性名称列表。因此,程序实际上(在我的系统上)传递了一个args数组: .classpath、.project、.settings、.bin、.src 而不是* 如果我把任何文本加上,比如“X”,那么我就得到了“X*” 双引号没有帮助。也不能用斜杠来逃避 在shell中,它可以正常工作,不过至少在Windows上有一个警告,您需要将它放在引号中。Windows将在程序获取引号之前除去引号
但是在Eclipse下,我找不到只允许传递*的解决方法。是否尝试用反斜杠转义它?是的,这会导致列出我根目录中的所有文件和文件夹(在我的例子中是“C:\”)。哦,我应该补充一点,我正在使用windows;),和<代码>包装星号;public class CmdLineArgAsteriskTest{public static void main(String[]args){System.out.println(args[0]);}}现在是我的主程序,输出是:
.classpath
我在发布之前尝试过我的。我已经创建了一个新的Java项目,其中包含这行代码,一个新的“Java应用程序”类型的运行配置,并且在运行配置的ProgramArguments字段中添加了“*”。您的项目或运行配置在某些地方似乎有所不同。我建议您创建一个全新的项目并运行配置以进行验证。@Bananeweizen我也得到了。classpath。Clear eclipse与*