据我所知,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()
语法是否要求我们这样做?
答案 0 :(得分:4)
您必需将一个名为public static void main(String[] args)
的函数作为Java程序的入口点。
如果您查看实际java command的文档,则会明确说明:
java 命令启动Java应用程序。它通过启动Java运行时环境(JRE),加载指定的类并调用该类的main()方法来实现。该方法必须声明为public和static,否则不能 返回任何值,它必须接受一个String数组作为参数。方法声明具有以下形式:
public static void main(String[] args)
这与JavaFX程序有所不同; its initial entry point位于start()
函数中。
答案 1 :(得分:2)
是 - 如果您退出参数,您将收到以下错误:
错误:在类nl.magnus.test.Test中找不到主方法,请将main方法定义为: public static void main(String [] args)
main
的这一要求由Oracle在Java SE specifications:
最后,在完成类Test的初始化之后(在此期间可能发生了其他相应的加载,链接和初始化),调用了Test的方法main。
方法main必须声明为public,static和void。它必须指定一个形式参数(第8.4.1节),其声明的类型是String数组。因此,可以接受以下任一声明:
public static void main(String [] args)
public static void main(String ... args)
答案 2 :(得分:2)
简短的回答 - 是的。您的main
方法必须具有String[]
参数,即使它不使用它。
如果没有这样的参数,Java只会将其视为任何其他public static
方法,而不是程序的入口点。
答案 3 :(得分:2)
在Java编程语言中,每个应用程序都必须包含一个签名为:
的main方法public static void main(String [] args)
答案 4 :(得分:0)
这是Java中程序入口点的必需定义。你必须拥有它。
答案 5 :(得分:0)
它是main()
方法的语法,无论是否从命令行发送运行时args。
任何程序的执行只能从main()
的签名开始: -
public static void main(String args[])