【发布时间】:2019-09-08 22:25:08
【问题描述】:
我有以下简单的java程序:
import java.util.Arrays;
public class Arguments
{
public static void main(String [] args)
{
System.out.println("args: "+Arrays.toString(args));
}
}
当我在 powershell 中使用以下命令执行此操作时:java Arguments "*.java" 程序中收到的字符串不是"*.java",而是当前目录中所有 java 文件的逗号分隔列表。如果当前目录中没有 java 文件,则接收到的字符串为"*.java"。
我想知道为什么会发生这种情况以及如何在不转换的情况下直接传递字符串。
更新:java Arguments '"*".java' 和 java Arguments `"*.java`" 完成了这项工作,但这在 cmd 中执行时会产生同样的问题。谁能解释为什么会这样? PowerShell 和 cmd 有什么通用的解决方案吗?
【问题讨论】:
-
这听起来像
java.exe通配文件,你可以尝试用'*.java'代替(单引号) -
还是和'*.java'一样
-
您应该使用 -jar 选项运行 jar 文件。像这样:
java -jar Arguments "*.java" -
@epcpu 不能在不创建 jar 文件的情况下运行程序吗?我尝试制作一个并执行它。但它给了我
Unable to access jarfile Arguments错误 -
您是否尝试过使用重音来转义引号(在每个双引号之前直接添加重音)?
标签: java string powershell arguments