为什么在Java中,如果在命令行编译中使用main方法main向参数中提供“ *”,则将其视为“ a”

时间:2019-05-23 12:07:58

标签: java

为什么在Java中,如果在命令行编译中使用main方法main来在参数中给出“ *”,则将其视为“ a”

class Bonjour {

    public static void main(String[] args) {
        System.out.println(args[0].charAt(0));
    }
}
C:\Users\cri\Desktop>javac Bonjour.java

C:\Users\cri\Desktop>java Bonjour *
a

C:\Users\cri\Desktop>java Bonjour +
+

1 个答案:

答案 0 :(得分:3)

那只是您的命令shell在Java甚至没有看到它之前,就用所有匹配的文件名替换*

结果与手动输入类似的结果一样

java Bonjour aFileInTheCurrentDirectory.tx anotherOne oneMore zeLastFile

尝试引用它以避免出现这种情况。

不确定Windows Shell的工作方式,也许

java Bonjour "*"