Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse中将星号作为命令行参数传递给main_Java_Eclipse - Fatal编程技术网

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

Java 在Eclipse中将星号作为命令行参数传递给main,java,eclipse,Java,Eclipse,我正在Eclipse中处理一个Java项目,现在我想将星号*作为命令行参数传递给main。我知道这是一个通配符,在每个shell中,只要把它放在引号中就可以很好地工作,所以我不想用javamyprogram*而是键入javamyprogram*“ 在Eclipse中(运行Cofigurations->Arguments),这两种方式都不起作用,即使使用引号,它也只列出目录中的所有文件。“*”中的单引号的工作方式与a*a或其他内容相同,这意味着单引号(或撇号)也将被传递到字符串中 你知道如何把*放

我正在Eclipse中处理一个Java项目,现在我想将星号
*
作为命令行参数传递给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与*