为什么在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 +
+
答案 0 :(得分:3)
那只是您的命令shell在Java甚至没有看到它之前,就用所有匹配的文件名替换*
。
结果与手动输入类似的结果一样
java Bonjour aFileInTheCurrentDirectory.tx anotherOne oneMore zeLastFile
尝试引用它以避免出现这种情况。
不确定Windows Shell的工作方式,也许
java Bonjour "*"