我想知道是否有可能讓Java桌面應用程序在啓動時查找某個URL以查看它是否需要更新,如果是這樣,請下載必需的JAR文件並添加他們到正在運行的程序的類路徑。在Java中運行時下載JAR文件
如果舊罐子在那裏,他們不應該被加載到類加載器,但在這一點上他們應該?是否有可能在將它們加載之前將它們交換出來,無法重新啓動應用程序?
我想知道是否有可能讓Java桌面應用程序在啓動時查找某個URL以查看它是否需要更新,如果是這樣,請下載必需的JAR文件並添加他們到正在運行的程序的類路徑。在Java中運行時下載JAR文件
如果舊罐子在那裏,他們不應該被加載到類加載器,但在這一點上他們應該?是否有可能在將它們加載之前將它們交換出來,無法重新啓動應用程序?
這是可能的,但容易出錯。
稍微更簡潔的方法是有一個「啓動器」應用程序,它不依賴於可更新JAR的任何執行上述操作,然後啓動實際應用程序。
有關此主題的更多詳細信息,您可能需要查看this question。
應該有可能。 URLClassLoader是一個開始的地方。
Java Web Start可能是您最好的選擇。應該在描述符中標識所需的jar文件,以便管理版本控制。
如果您有一個需要在運行時動態發現和下載類的動態應用程序,那麼您可以查看Dynamic code downloading using RMI。
Java Web Start是一個不錯的選擇,但有一些怪癖。值得注意的是:
但是當它工作得很好。據我所知,擁有一個集中版本可以輕鬆更新給定Java應用程序的最簡單方法。
-
編輯:看起來「啓動程序和透明地下載更新,如果可用」功能出現在最新的Java 6中。我還沒有嘗試過,但很快。
這就是我通常所做的。我有一個通常爲jnlp的應用程序,但在這種特殊情況下,我將從一個已經運行的vm啓動這個應用程序,並在同一虛擬機中啓動它。這部分工作。問題是啓動應用程序的應用程序通常是jnlp,並不容易更新,並且它需要一些相關的jar包來啓動其他應用程序。 Jnlp可以解決所有這些問題,但單個虛擬機需求是約束條件。 – broschb 2009-11-19 00:16:56