我刚开始用Java写程序。下面的Java代码是什么意思?

public static void main(String[] args)

什么是字符串[]参数? 什么时候使用这些参数?

源代码和/或示例优先于抽象的解释。


当前回答

用通俗易懂的语言解释。

当我们将JVM指向类名时,main方法希望我们提供一些参数。这意味着,假设你的文件名是Try.java,现在要在命令提示符中执行这个命令,你写“javac Try.java”来编译,然后再写“java Try”来执行。现在假设不是简单地写“java Try”而是写“java Try 1”。这里你传递了一个参数“1”。这将由你的main方法获取,即使你没有在你的代码中使用它。

如果你想检查你的主方法是否真的取了参数"1"简单地,在你的main方法中输入以下内容:

for(int i = 0; i < args.length; i++) {
        System.out.println("Argument is: "+args[i]);
    }

其他回答

String[] args参数是一个字符串数组,当你在操作系统中通过命令行运行你的应用程序时,它作为参数传递。

假设您已经编译并打包了一个myApp.jar Java应用程序。当然,你可以在操作系统中双击应用程序来运行应用程序,但你也可以使用命令行方式运行它,比如(在Linux中):

user@computer:~$ java -jar myApp.jar

当你调用你的应用程序传递一些参数时,比如:

user@computer:~$ java -jar myApp.jar update notify

java -jar命令将你的Strings更新和通知传递给你的公共静态void main()方法。

然后你可以这样做:

System.out.println(args[0]); //Which will print 'update'
System.out.println(args[1]); //Which will print 'notify'

试试这个:

System.getProperties().getProperty("sun.java.command", 
    System.getProperties().getProperty("sun.rt.javaCommand"));

在Java中,args以String对象数组的形式包含提供的命令行参数。

换句话说,如果你在你的终端上运行你的程序:

C:/ java MyProgram one two

然后args将包含["one", "two"]。

如果你想输出参数的内容,你可以像这样循环它们…

public class ArgumentExample {
    public static void main(String[] args) {
        for(int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
    }
}

程序将在终端中打印:

C:/ java MyProgram one two
one
two
    
C:/

args包含调用时传递给Java程序的命令行参数。例如,如果我像这样调用程序:

$ java MyProg -f file.txt

然后args将是一个包含字符串"-f"和"file.txt"的数组。

除了前面所有的评论。

public static void main(String[] args) 

可以写成

 public static void main(String...arg)

or

 public static void main(String...strings)