2012-01-12 55 views
4

我正在用Java寫一個服務器。爲了支持服務器的開發,我有一些main()方法的類,我打算從命令行運行,作爲開發工具來執行諸如診斷,模擬客戶端連接以及與其餘部分服務器。目前,這些類是主服務器項目的一部分。具有多個主入口點和可執行文件的Java項目結構?

構建我的項目以支持這些多個可執行工具的最佳方法是什麼?我應該爲這些模擬/加載/診斷工具創建單獨的項目,還是將它們保存在主服務器項目中?如果我將它們放在主項目中,我應該配置項目來構建多個可執行文件或多個入口點的單個jar文件嗎?如果使用單個jar,是否可以將服務器的主要入口點指定爲默認值?

回答

8

除非服務器和實用程序具有完全不同的依賴關係,否則我會簡化它,並將所有內容放在一個jar中。提供shell腳本,其包裝的調用適當的類:

# startServer.cmd 
java -cp MyServer.jar;other.jar com.foo.myserver.Main 

#showDiagniostics.cmd 
java -cp MyServer.jar;other.jar com.foo.myserver.Diagnostics 

你可以把它可執行的JAR與服務器啓動類作爲主類,但我覺得它更容易有一個可執行的腳本,而不是必須使用java -jar MyServer.jar

+0

請注意,它們非常相似,以至於您實際上可以擁有一個用於參數化要運行的類的dev腳本。這樣,創建第二個(或第50個)入口點將不需要新的腳本。 – 2016-05-09 17:07:19

相關問題