Java 无法在终端中输入“*”

Unable to input "*" in terminal for Java

我正在尝试在 java 中编写一个简单的计算器,它在控制台中接收输入。

 eg. java 30 - 7  (works)
     java 30 * 7  (doesn't work)

稍加调试后,似乎 * 被解析为 class 名称而不是字符串 '*'。

 eg. public static void main(String[] args) {
          System.out.println(args[1]);
          // (returns Calculator.java and Calculator.class)
     }

有谁知道为什么?有没有办法解决这个问题?

it seems that * is parsed into the main method as the class name instead of String '*'.

事实并非如此。

您正在使用的 shell(可能是 bash)扩展 * 以匹配当前目录中的所有文件,然后调用 java。这被称为 globbing,与 Java 无关。如果你不想参数被shell解析,传递一个字符串:

java some_app '30 * 7'