“什么是”呢;字符串args[]";?主方法Java中的参数

“什么是”呢;字符串args[]";?主方法Java中的参数,java,parameters,command-line-arguments,main,Java,Parameters,Command Line Arguments,Main,我刚刚开始用Java编写程序。下面的Java代码是什么意思 public static void main(String[] args) 什么是String[]args 您什么时候使用这些参数 源代码和/或示例优先于抽象解释args包含调用时传递给Java程序的命令行参数。例如,如果我这样调用程序: $ java MyProg -f file.txt 然后,args将是一个数组,其中包含字符串“-f”和“file.txt”,,在Javaargs中包含作为字符串对象数组提供的字符串 换句话

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

public static void main(String[] args)
  • 什么是
    String[]args

  • 您什么时候使用这些
    参数


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

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

$ java MyProg -f file.txt

然后,
args
将是一个数组,其中包含字符串
“-f”
“file.txt”
,,在Java
args
中包含作为
字符串
对象数组提供的字符串

换句话说,如果您以
javamyprogram一两
运行程序,那么
args
将包含
[“一”、“二”]

如果您想输出
args
的内容,您可以像这样循环它们

public class ArgumentExample {
    public static void main(String[] args) {
        for(int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
    }
}
公共类参数示例{
公共静态void main(字符串[]args){
对于(int i=0;i
String[]args
也是在Java中声明字符串数组的方式

在这个方法签名中,当调用该方法时,数组
args
将填充值(如这里的其他示例所示)。但是,由于您正在学习,因此值得了解的是,这个
args
数组就像您自己在一个方法中创建了一个数组一样,如下所示:

public void foo() {
    String [] args = new String[2];
    args[0] = "hello";
    args[1] = "every";

    System.out.println("Output: " + args[0] + args[1]);

    // etc... the usage of 'args' here and in the main method is identical
}

当从控制台执行java类时,主方法就是所调用的方法。为了实现这一点,必须定义此主要方法

public static void main(String [])
这个字符串数组称为args是一个标准约定,但不是严格要求的。在调用程序时,可以在命令行中填充此数组

java MyClass a b c

这些文件通常用于定义程序的选项,例如要写入或读取的文件。

这些文件用于Java中的命令行参数

换句话说,如果你跑

java MyProgram 1 2

然后
args
包含:

[“一”、“二”]

这样做的原因是将应用程序配置为以特定方式运行,或为其提供所需的某些信息


如果您是Java新手,我强烈建议您阅读Oracle官方的 公共静态void main(字符串参数[]) args是数据类型为String的控制台行参数数组。 在此数组中,您可以通过在命令行调用各种字符串参数来存储它们,如下所示: java myProgram Shaan Royal 然后Shaan和Royal将作为 arg[0]=“Shaan”; arg[1]=“皇家”;
当您不在命令行中调用它们时,也可以在程序内部手动执行此操作

当您完成代码时,您将把它转换成一个扩展名为.java的文件,可以通过双击它来运行,也可以通过控制台(mac上的终端,windows上的cmd.exe)来运行,该控制台允许用户做许多事情。一件事是,他们可以看到控制台消息(System.out.print或System.out.println),如果双击,他们看不到这些消息。他们可以做的另一件事是指定参数,因此通常您将使用该行

java -jar MyCode.jar
使用导航到程序的文件夹后

cd C:My/Code/Location
在窗户上或

cd My/Code/Location
在Mac上(请注意,Mac不那么笨重)运行代码,但指定要使用的参数

java -jar MyCode.jar parameter1 parameter2

这些参数存储在args数组中,您可以在程序中使用这些参数。如果您希望允许用户控制特殊参数,例如要使用的文件或程序的内存量。如果你想知道如何使用数组,你可以在这个网站上找到一个主题,或者用谷歌搜索一下。请注意,可以使用任意数量的参数。

我认为上面的答案很好地涵盖了这一点,
String args[]
只是一个字符串参数数组,您可以在运行应用程序时将其传递给应用程序。为了完成此操作,我可以补充一点,将传递给
main
方法的方法参数定义为字符串类型的变量参数(varargs)也是有效的:

publicstaticvoidmain(字符串…参数)

换句话说,
main
方法必须接受字符串数组(
String args[]
)或varargs(
String…args
)作为方法参数。而且名字
args
也没有魔力。您也可以编写
参数
甚至
freddiefujiwara
,如下例所示:

publicstaticvoidmain(字符串[]参数)


publicstaticvoidmain(String[]freddiefujiwara)
首选样式
dataType[]arrayRefVar
。样式
数据类型arrayRefVar[]
来自C/C++语言,在Java中被采用以适应C/C++程序员。

用简单的外行语言解释。

main方法希望我们在将JVM指向类名时提供一些参数。这意味着,假设您的文件名是Try.java,现在要在命令提示符下执行它,您需要编写“javactry.java”进行编译,然后编写“javatry”进行执行。现在假设您编写的不是简单的“Javatry”,而是“Javatry1”。这里您已经传递了一个参数“1”。即使在代码中没有使用main方法,它也将由main方法执行

如果要检查main方法是否实际使用了参数“1”。简单地说,在主方法中键入以下内容:

for(int i = 0; i < args.length; i++) {
        System.out.println("Argument is: "+args[i]);
    }
for(int i=0;i
即使OP只讨论了
字符串[]args
,我还是想给出一个完整的
公共静态void main(字符串[]args)

Public
:是一个
for(int i = 0; i < args.length; i++) {
        System.out.println("Argument is: "+args[i]);
    }
/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
                   "([Ljava/lang/String;)V");
...
{    /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
    message = "Main method not public.";
    messageDest = JNI_TRUE;
    goto leave;
...
public static void main(String args[])
// one class needs to have a main() method
public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] parameter)
  {    
System.out.println(parameter[0] + parameter[1]); // Output is 11

//Comment out below code in case of String
    System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2
    System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0    
    System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2    
    System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0    

  }
}
public static void main(String[] args) 
 public static void main(String...arg)
 public static void main(String...strings)
user@computer:~$ java -jar myApp.jar
user@computer:~$ java -jar myApp.jar update notify
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"));