2009-08-12 34 views
3

如何在應用程序客戶端jar中設置多個入口點?應用程序客戶端jar的多入口點(mainclass)

我正在使用Glassfish應用程序服務器。我可以抓住用

asadmin get-client-stubs --appname APPLICATION_NAME . 

我目前可以運行,我在MANIFEST.MF指定的默認mainclass客戶端。但是,我希望能夠在運行時指定另一個主類。

appclient -client MYJAR.jar -mainclass com.mystuff.Main1 
and 
appclient -client MYJAR.jar -mainclass com.mystuff.Main2 

兩個MAIN1和MAIN2具有 「公共靜態無效的主要」 入口點。

如果我指定一個mainclass,是不是在MANIFEST.MF,我得到以下異常:

Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: Could not locate an embedded app client matching the main class name 

我需要做任何改變有appclient參考其他mainclasses?

回答

1

http://forums.java.net/jive/thread.jspa?threadID=65549&tstart=0 < - 我在這裏轉貼同樣的問題,有人給出了答案......

嗨。

GlassFish應用程序客戶端容器使用-mainclass選項區分打包到同一EAR中的多個客戶端,因此在啓動時,用戶可以選擇打包在一起的幾個客戶端中的哪一個來啓動。正如您已經發現的那樣,它不允許用戶覆蓋開發人員關於在給定客戶端內運行的主類的意圖。

你可以做你想做的V3使用可用的替代appclient語法什麼:

http://docs.sun.com/app/docs/doc/820-7701/appclient-1m?a=view

對於V2,你當然可以寫你的單一主類,以接受指定要運行的類參數,並然後動態加載該類並調用其主要方法。

-Tim