【问题标题】:What are the input arguments taken by my main method?我的主要方法采用的输入参数是什么?
【发布时间】:2013-08-13 03:48:59
【问题描述】:

考虑下面的类。

public class Test {
    public static void main(String[] args) {
        System.out.println(args.length);       // out put 0
        System.out.println(Arrays.asList(args)); // out put []
    }
}

基于这个结果,我认为java中的main方法没有参数。如果我错了,请纠正我。如果它需要一些输入参数,为什么我会得到这个输出?

【问题讨论】:

  • 如果你运行你的程序没有参数,那么这是正确的输出。 args 是大小为 0 的 String[]
  • if it takes some input argument why i am getting this output? 你用来运行这段代码的命令是什么样子的?
  • @Pshemo:听起来它在 IDE 中运行时没有参数。
  • 如果我运行java Test,这听起来很有趣,意味着没有争论。那为什么不能用public static void main() {}作为main方法呢?
  • 这个 SO 问题解释了为什么需要参数:stackoverflow.com/questions/10783190/…

标签: java main


【解决方案1】:

您始终可以选择使用或不使用参数来运行您的程序。如果您不指定任何参数,args 将是一个空数组(正如您在此处演示的那样)。如果您确实指定了参数,args 将包含已传递的参数列表。

有关更多信息,请参阅Command-Line Arguments 上的 Java 文档。

【讨论】:

    【解决方案2】:

    这是一个 Oracle Docs 示例,

    应该可以帮助你更好地理解;

    用户输入:

    java Echo Drink Hot Java
    
    // Output for the program below:
    Drink
    Hot
    Java
    
    public class Echo {
        public static void main (String[] args) {
            for (String s: args) {
                System.out.println(s);
            }
        }
    }
    

    【讨论】:

      【解决方案3】:

      如果你使用记事本,你可以提供命令行参数为

      java Test aa bb.

      不提供任何参数将在列表中返回一个空白集

      【讨论】:

        【解决方案4】:

        这样从 cmd 行运行它
        java Test "StringArgument1"
        

        你会得到输出:StringArgument1

        目前,您没有传递任何命令行参数。

        【讨论】:

        • 如果我运行java Test,这听起来很有趣,意味着没有参数。那为什么不能用public static void main() {}作为main方法呢?
        • @Ruchira:查看此链接,因为此处列出了需要它们的确切原因:stackoverflow.com/questions/10783190/…
        猜你喜欢
        • 2020-05-11
        • 2014-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-07
        相关资源
        最近更新 更多