* java的主要args列表中的含义是什么?

时间:2013-12-20 12:47:03

标签: java

我写了一个这样的类并命名为Solution.java

public class Solution {
    public static void main(String[] args) {
        System.out.println(args.length);
    }
}

当我在终端中运行它时,我得到了这样的结果:

>  /Users/WangWei  java Solution *
18
>  /Users/WangWei

为什么18?

4 个答案:

答案 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个文件。