我写了一个这样的类并命名为Solution.java
。
public class Solution {
public static void main(String[] args) {
System.out.println(args.length);
}
}
当我在终端中运行它时,我得到了这样的结果:
> /Users/WangWei java Solution *
18
> /Users/WangWei
为什么18?
答案 0 :(得分:21)
这可能是您工作目录中的文件数量。
*
的结果并非特定于Java。它特定于您正在使用的环境,即工作目录和用于运行java命令的shell类型(Windows命令提示符,bash,...)。这是因为shell在启动进程之前处理并评估命令行。它取代了*
。
要将*
保留为命令行参数,您需要引用它:
java Solution '*'
答案 1 :(得分:7)
你的shell正在解释当前文件夹的内容 - 传入了18个文件。使用单引号来避免解释星号
java Solution '*'
答案 2 :(得分:4)
只需将其添加到您的代码中,您就会看到:
for(String line: args)
System.out.println(line);
答案 3 :(得分:3)
目录中的文件数。
18显示您的目录中有18个文件。