2011-09-13 134 views
1

是否可以從Java Web Start應用程序中訪問客戶端緩存的jar文件?Java Web Start Jar Access

我們的應用程序通過閱讀部署jar來查找各種東西的子類,然後將選項放入GUI中的相應位置來自動填充它的GUI。我們正在嘗試使用Java Web Start的部署應用程序和傳統上使用:。

MainClass.class.getProtectionDomain()getCodeSource()的getLocation()

找到罐子,然後用ZipInputStream項找到以.class結尾的文件。但是,從Web Start部署應用程序時,此位置位於遠程服務器上。由於jar大概有80兆像素,這會導致應用程序的加載時間非常長(最多30分鐘)。

有沒有一些方法來找到jar文件的本地副本,或更好的選擇?

回答

1

我如何處理大型JAWS項目(我有一個約35MB的空間)是創建一個小型啓動器JAWS,將實際項目拖入本地(用戶)文件夾。

如果您的項目包含多個文件,那麼您可能需要構建release.xml文件或其他東西,以便處理所有必需的文件(和文件夾)。

提示:如果將文件大小和校驗和添加到XML信息中,則允許檢測更新並僅下載更改的文件。

一旦你的發行版已經被下載/更新,開始呼籲你想在運行時識別搜索罐子代替類

java -jar downloadedAppMainJar.jar 
1

..更好的選擇?

這似乎是你建立了80兆。提供的罐子。在構建時,編譯一個類列表,並將該列表包含在Jar中的已知路徑/名稱中(例如/resources/plugin-list.txt)。在運行時閱讀該文件,並獲得您的列表。


鑑於單個罐子的大小,我建議通過包裝將其分成單獨的罐子。這樣,如果只有2個(10個)包中的類發​​生更改,JWS將只會自動更新兩個存檔。