不需要命令行参数的程序是否需要 String args[] 参数?
Is the String args[] parameter needed for programs that do not require command line arguments?
据我所知,String args[]
接受类型为 String
的元素数组 - 一种运行时系统将信息传递给应用程序的机制。
如果我们采用这样一个简单的加法程序:
class Add {
public static void main(String args[]) {
int x = 10;
int y = 30;
int c = x + y;
System.out.println(c);
}
}
很明显,程序不需要任何命令行参数来计算结果。没有值传递给 args 数组。那么,是否有必要包含这个数组,或者 main()
语法是否要求我们不这样做?
是的 - 如果您省略参数,您将收到以下错误:
Error: Main method not found in class nl.magnus.test.Test, please define the main method as:
public static void main(String[] args)
main
的这一要求由 Oracle 在 Java SE specifications:
中指定
Finally, after completion of the initialization for class Test (during which other consequential loading, linking, and initializing may have occurred), the method main of Test is invoked.
The method main must be declared public, static, and void. It must specify a formal parameter (§8.4.1) whose declared type is array of String. Therefore, either of the following declarations is acceptable:
public static void main(String[] args)
public static void main(String... args)
这是Java中要求的程序入口点定义。你必须拥有它。
这是 main()
方法的语法,无论您是否从命令行发送运行时参数。
任何程序的执行只会从main()
的这个签名开始:-
public static void main(String args[])
您需要 有一个名为 public static void main(String[] args)
的函数作为您的 Java 程序的入口点。
如果您查看实际 java command 的文档,它会明确说明:
The java command starts a Java application. It does this by starting the Java Runtime Environment (JRE), loading the specified class, and calling that class's main() method. The method must be declared public and static, it must not
return any value, and it must accept a String array as a parameter. The method declaration has the following form:
public static void main(String[] args)
这与 JavaFX 程序有区别; its initial entry point 位于 start()
函数中。
简短的回答 - 是的。您的 main
方法必须有一个 String[]
参数,即使它不使用它也是如此。
如果它没有这样的参数 Java 只是将其视为任何其他 public static
方法,而不是程序的入口点。
In the Java programming language, every application must contain a main method whose signature is:
public static void main(String[] args)
据我所知,String args[]
接受类型为 String
的元素数组 - 一种运行时系统将信息传递给应用程序的机制。
如果我们采用这样一个简单的加法程序:
class Add {
public static void main(String args[]) {
int x = 10;
int y = 30;
int c = x + y;
System.out.println(c);
}
}
很明显,程序不需要任何命令行参数来计算结果。没有值传递给 args 数组。那么,是否有必要包含这个数组,或者 main()
语法是否要求我们不这样做?
是的 - 如果您省略参数,您将收到以下错误:
Error: Main method not found in class nl.magnus.test.Test, please define the main method as: public static void main(String[] args)
main
的这一要求由 Oracle 在 Java SE specifications:
Finally, after completion of the initialization for class Test (during which other consequential loading, linking, and initializing may have occurred), the method main of Test is invoked.
The method main must be declared public, static, and void. It must specify a formal parameter (§8.4.1) whose declared type is array of String. Therefore, either of the following declarations is acceptable:
public static void main(String[] args)
public static void main(String... args)
这是Java中要求的程序入口点定义。你必须拥有它。
这是 main()
方法的语法,无论您是否从命令行发送运行时参数。
任何程序的执行只会从main()
的这个签名开始:-
public static void main(String args[])
您需要 有一个名为 public static void main(String[] args)
的函数作为您的 Java 程序的入口点。
如果您查看实际 java command 的文档,它会明确说明:
The java command starts a Java application. It does this by starting the Java Runtime Environment (JRE), loading the specified class, and calling that class's main() method. The method must be declared public and static, it must not return any value, and it must accept a String array as a parameter. The method declaration has the following form:
public static void main(String[] args)
这与 JavaFX 程序有区别; its initial entry point 位于 start()
函数中。
简短的回答 - 是的。您的 main
方法必须有一个 String[]
参数,即使它不使用它也是如此。
如果它没有这样的参数 Java 只是将其视为任何其他 public static
方法,而不是程序的入口点。
In the Java programming language, every application must contain a main method whose signature is:
public static void main(String[] args)