我正在尝试从命令行运行Java计算器应用程序。参数如下:运算符operon1操作数2。我可以为+和-成功运行Java程序。 例如 Java Calc + 2 4 Java Calc-10 4
但是当我尝试运行 java * 2 5时
System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]);
System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
给出输出: .classpath .project .settings
我通过反复试验发现使用单引号(’‘)解决了我的问题。所以我现在有两个问题。 1.使用单引号是正确的方法吗?(java calc’‘2 5) 2. java命令行中*的含义是什么?(我试图在互联网上找到它,但没有找到太多帮助)
谢谢,Punit
它不是Java,而是cmd您正在使用的shell(如果您使用的是Windows)解释*为“当前目录中的所有文件和文件夹”。
cmd
*
所以当你写:
java calc * 2 5
实际上,您将为程序提供以下参数:
java calc file_1 file_2 ... file_n 2 5
file_1 ... file_n当前目录中的所有文件(和文件夹)在哪里。
file_1 ... file_n
如果您不希望shell解释*为所有文件,则需要(如您所注意到的)引用该参数。