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

x33g5p2x  于 2023-08-04  发布在  Eclipse
关注(0)|答案(4)|浏览(121)

我正在Eclipse中处理一个Java项目,现在我想将星号*作为命令行参数传递给main。我知道这是一个通配符符号,在每个shell中,只要把它放在引号中就可以很好地工作,所以我输入java MyProgram *而不是java MyProgram "*"
在Eclipse(Run Cofigurations -> Arguments)中,它不起任何作用,即使有引号,它也只是列出目录中的所有文件。'*'中的单引号与a*a或其他东西的工作方式相同,这意味着单引号(或撇号)也将被传递到字符串中。
有什么想法如何让*进入主?

7z5jn7bk

7z5jn7bk1#

Eclipse将 * 展开为属性名列表。因此,程序实际上(在我的系统上)传递了一个args数组:.classpath,.project,.settings,.bin,.src而不是 * .
如果我把任何文本与 ,如“X”,那么我得到“X*”。
双引号没有帮助。用斜线转义也不行。
从shell它工作得很好,虽然在Windows上至少有一个警告,你确实需要把它放在引号里。Windows将在程序获取引号之前剥离引号。
但是在Eclipse下,我找不到允许只传递 * 的变通方法。

5w9g7ksd

5w9g7ksd2#

对于遇到同样问题的任何人,您需要将其写为“*”,以便Eclipse将其作为 * 传递

jv2fixgn

jv2fixgn3#

从“运行”下拉菜单中选择“运行配置”。
转到参数选项卡。
勾选@argfile框。

dsf9zpds

dsf9zpds4#

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

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

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

相关问题