我繼承了一個旨在成爲多代理開發平臺的Java項目。這個想法是,你可以創建在平臺上運行的「應用程序」。我正在尋找一種方法來分發基礎平臺,以便最終用戶可以將應用程序(可能打包成jar包)添加到預定義的文件夾中,將引用存儲到該平臺讀取的某個清單文件中,因此可以從中訪問文件。使用清單文件在運行時加載jar
我看着下面的答案,但這些似乎需要,該平臺代碼知道類在設計時的名字:
理想情況下,我想要以下結構工作:
- 主目錄:platform.jar,apps.manifest,應用程序(目錄)
- 應用程序/應用1/app1.jar,應用程序/應用2/app2.jar,...,應用程序/ APPN/appN.jar
apps.manifest將包含每個應用程序的條目,其中將包括jar的路徑以及作爲主應用程序(實現通用接口)對象的類的名稱。
在我platform.jar主要的代碼,我想讀的清單,發現有N個應用,並能夠撥打ApplicationOne appOne = new ApplicationOne(this)
其中ApplicationOne
是app1.jar
的主要應用對象的名稱和this
是來自platform.jar
的對象的引用,其中持有對應用程序的引用。
如果所有的罐子(platform.jar
和應用程序罐子)都在用戶的類路徑中,它是否會像上面那樣工作?如果是這樣,是否有辦法臨時添加一個目錄(和所有子目錄)到Java中的用戶類路徑,當我運行platform.jar
時,我可以運行該目錄?我暫時問,因爲封閉的文件夾應該可以在文件系統上移動。
關於這個問題的任何意見,以及任何關於改善問題的建議,使它更清晰,更易於閱讀。
由於
如果你可以在你的「應用」註釋,這可能幫助:http://stackoverflow.com/questions/259140/scanning-java-annotations-at-runtime/3391773#3391773 – Friso