实际上,我有两个问题。第一个是为什么项目中应该有一个主要功能,第二个如果我在一个项目中可以有多个主要功能,如果这样有用呢?
答案 0 :(得分:5)
主函数作为应用程序的引导点,是执行开始的起点。项目中的每个类都可以有一个主方法。
答案 1 :(得分:4)
为什么要有main()
?标准应用程序需要一个入口点。其他应用程序(例如Web应用程序)托管在容器中,并具有自己的入口点和生命周期。
您可以拥有多个main()
吗?是。这有用吗?是。例如,您可以发送一个.jar文件,并通过不同的类/ main()
方法提供不同的入口点,从而提供一种启用不同功能的方法。
答案 2 :(得分:1)
1)默认情况下,“应该”不是项目中的主要功能。您的项目需要主要功能,如果它是可执行的(即使用java -jar myApp.jar)。如果“仅”是其他项目使用的库,不应该具有主要功能。
2)如果a)你有一个复杂的构建过程产生多个jar,它可能是有用的,b)你希望你的程序的每次执行都要通过命令行指定要选择的主类(我不知道语法,但它应该是可能的)。例如,您可以将应用程序作为单个jar文件提供,其中包含几个.bat或shell脚本,每个脚本在jar中启动一个不同的主类。
答案 3 :(得分:0)
简单地说一下Boris Pavlovic所说的,你可以在项目的每个班级都有一个主要的方法,但这样的用处并不清楚。
主要方法毕竟只是一种方法,并且对于在不同类中具有相同签名的方法没有限制。您可以决定项目中哪个类是使用启动应用程序运行的主方法的类。
答案 4 :(得分:0)
这是java中的一个约定,具有带有String数组参数的public static void main方法的类可以从命令行运行。如果您的程序是命令行应用程序,则只需要main方法本身。如果它是Java Applet或Java EE应用程序,则根本不需要它。命令行参数可以作为main方法的String数组参数访问。
如果需要,您可以为每个课程设置主要方法。无论如何,在每个项目中让一个类具有main方法是最佳实践,如果要将其作为executable jar分发,则可以在jar的manifest.mf中定义它。