java - 为什么在java中,如果在命令行编译中main方法main的参数中给出 "*",这被认为是 "a"

标签 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 +
+

最佳答案

这只是您的命令 shell 在 Java 看到它之前将 * 替换为所有匹配的文件名。

结果与您手动输入类似内容相同

java Bonjour aFileInTheCurrentDirectory.tx anotherOne oneMore zeLastFile

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

也许不确定 Windows shell 是如何工作的

java Bonjour "*"

关于java - 为什么在java中,如果在命令行编译中main方法main的参数中给出 "*",这被认为是 "a",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56274877/

相关文章:

java - 为什么 CF UAA check_token 端点需要 clientId/clientSecret?

java - 如何在没有特定顺序的情况下管理多个可调用线程结果?

java - Java 中的 "in"和 "not in"

java - 在具体的 JPA 类之间共享 Java 实现的最佳方法是什么?

java - Scala StackOverflowError 而 Java 可以处理它

java - ArrayList.containsAll 不使用我的自定义 equals 函数

java - hibernate : limit rows in a table

java - 在元素重置之前找到它曾经是什么数字

java - 什么是 JUnit 5 中的容器

Java "TRAP"断言错误