2010-10-04 92 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中定義它。