2010-10-04 96 views
4

其实我有2个问题。第一个是为什么在项目中应该有一个主要功能,第二个如果我可以在一个项目中有多个主要功能,并且如果这会有用?在java中的主要功能?

回答

4

为什么要有main()?标准应用程序需要一个入口点。其他应用程序(例如Web应用程序)托管在容器中,并具有其自己的入口点和生命周期。

你可以有多个main()?是。这有用吗?是。例如,您可以发送一个.jar文件,并通过不同的类/ main()方法提供不同的入口点,从而提供一种启用不同功能的方法。

+0

我现在可以想象一个具有多个主体的项目。感谢这个很好的答案。 – Ahmed 2010-10-04 20:04:06

5

主函数可用作应用程序的引导点,这是执行开始的起点。您项目中的每个班级都可以有一个主要方法。

1

1)默认情况下,“应该”不是项目中的主要功能。您的项目需要一个主要功能,如果它打算是可执行的(即使用java -jar myApp.jar)。它不应该有一个主要功能,如果它是“只”一个库被其他项目使用。

2)这可能是有用的,如果a)你有一个复杂的构建过程,产生多个罐子,b)你期望每个执行程序的主要类选择通过命令行指定(我不知道语法,但它应该是可能的)。例如,您可以将您的应用程序作为一个包含多个.bat或shell脚本的单个jar文件提供,每个jar文件在jar中启动不同的主类。

0

只是简单地补充一下鲍里斯·帕夫洛维奇说的话,你可以在你的项目中的每个类中都有一个主要的方法,但是类似的东西的用处还不清楚。

主要方法毕竟是一种方法,对不同类别中具有相同签名的方法没有限制。您需要决定项目中的哪个类是启动应用程序运行的主要方法。

0

这是java中的一种约定,即具有带有String数组参数的公共静态void main方法的类可以从命令行运行。如果您的程序是命令行应用程序,则只需要主方法本身。如果它是一个Java Applet或一个Java EE应用程序,则根本不需要它。命令行参数可以作为main方法的String数组参数进行访问。

如果需要,您可以为每个课程设置主要方法。无论如何,最好的做法是让每个项目中有一个类具有主要方法,并且如果要将其作为executable jar进行分发,则可以在jar的manifest.mf中定义它。