据我所知,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()
语法要求我们这样做?
要求有一个称为public static void main(String[] args)
的函数作为Java程序的入口点。
如果您查看实际java命令的文档,它会使其显式:
java命令启动java应用程序。它通过启动Java运行时环境(JRE)、加载指定的类并调用该类的main()方法来实现这一点。方法必须声明为public和static,而不能返回任何值,并且必须接受字符串数组作为参数。方法声明的形式如下:
public static void main(String[] args)
这和JavaFX程序是有区别的;其初始入口点位于start()
函数中。
From The Java Tutorials:
在Java编程语言中,每个应用程序必须包含一个签名为:
的main方法。public static void main(String[] args)
是-如果您省略参数,您将得到以下错误:
错误:在类n .magnus.test中找不到主方法。测试时,请将主要方法定义为:public static void main(String[] args)
Oracle在Java SE规范中指定了main
的要求:
最后,在完成Test类的初始化之后(在此期间可能发生了其他相应的加载、链接和初始化),调用Test的方法main。
方法main必须声明为public、static和void。它必须指定一个声明类型为String数组的形式形参(§8.4.1)。因此,以下任何一种声明都是可以接受的:
public static void main(String[] args)
public static void main(String…args)
简短的回答是肯定的。你的main
方法必须有一个String[]
参数,即使它不使用它。
如果它没有这样的参数,Java就把它当作任何其他public static
方法,而不是作为程序的入口点。
这是Java中程序入口点的必要定义。你必须拥有它
这是main()
方法的语法,无论您是否从命令行发送运行时参数。
任何程序的执行都将以main()
的签名开始:-
public static void main(String args[])