gpt4 book ai didi

java - main 方法的奇怪行为

转载 作者:IT老高 更新时间:2023-10-28 20:35:33 25 4
gpt4 key购买 nike

我有一个类似的类(class) -

public class Test{
public static void main(String[] args){
for(String s: args){
System.out.println(s);
}
}
}

当我像 > java Test * 这样运行这个程序时,它会打印该文件夹中所有文件的名称。
我不知道JVM或windows是否传递了这个数组而不是'*',我想知道这个程序在其他平台(除了windows)上的行为是否相同,为什么它会这样?这样做有什么目的或理由吗?

注意:
它不会破坏我的任何代码,但我只是好奇。

最佳答案

我原本以为这只是命令行shell执行文件名扩展。这就是我在类 Unix 系统下所期望的,但不是 Windows……但我在 Windows 下也会发生同样的情况。

当我编写等效的 C# 代码时,它不会发生...所以我怀疑它是在 Java 可执行启动器中执行的。 (请注意,javaw.exe 的行为方式与 java.exe 相同。)

这确实让我感到惊讶,我不认为旧版本的 Java 在 Windows 上会这样做,尽管 this mailing list post from December 2000暗示我错了。 (我使用的是 OpenJDK 1.7 JRE。)

我在 Java Windows documentation 中找不到对这种一般情况的任何描述。 - 它提到了类路径条目的扩展,但没有提到一般参数。

关于java - main 方法的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5368892/

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