gpt4 book ai didi

java - Java main 函数中 args 的分割规则?

转载 作者:行者123 更新时间:2023-12-01 22:40:13 24 4
gpt4 key购买 nike

这是我遇到的一个奇怪的问题:

我创建一个程序来打印所有收到的参数,代码如下:

public class Test {
public static void main(String[] args) {
for (int i = 0; i < args.length; i ++) {
System.out.println(args[i]);
}
}
}

然后我构建了它的 jar 文件并运行以下命令:

java -jar test.jar test&1    

但是,它没有按预期打印“test&1”。其结果是:

test
'1'is not recognized as an internal or external command,operable program or batch file.

所以我的问题是:args 的分隔是什么?如果我确实需要接收“test&1”,我该怎么办?

谢谢!

最佳答案

这与Java无关。 & 字符对于 Windows shell 来说是特殊的(我可以从错误消息中看出它是 Windows):它将两个命令分隔在一行上,所以你要做的是告诉 shell 运行 java -jar test.jar test,然后运行 ​​1。如果您想将 test&1 传递给 Java,则必须将其放在引号中:

java -jar test.jar "test&1"

& 在 *nix shell 上也很特殊(但以不同的方式,它在子 shell 中运行命令)。在那里,您可以像上面一样使用引号,或者在 & 之前放置 \ 。但在 Windows 上不行。

关于java - Java main 函数中 args 的分割规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26293625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com