我有各種由多個用戶使用的Java Swing應用程序。我的部署策略是將.jar文件定位到網絡共享上,並且用戶爲該文件創建快捷方式。當用戶啓動應用程序時,文件被複制到他們的機器並在本地執行。該方法允許代碼的單個副本並且易於更新。需要更好的Java應用程序部署策略
問題是,如果有任何用戶當時正在使用應用程序,我無法更新網絡共享上的文件。
我無法使用Web Start,因爲我無權訪問簽署jar的證書。
我目前的解決方法是一個單獨的應用程序,將所需的應用程序複製到用戶的本地計算機,啓動應用程序,然後啓動程序退出。從啓動程序應用程序退出並且用戶的應用程序可見時,會有幾秒的延遲。
任何人都可以提出一個更好的部署方法,我可以輕鬆地更新應用程序的中央副本,其中一個Windows XP將不會維護文件上的鎖定?
更新: JSmooth方法解決了基本問題。由JSmooth創建的.exe在使用時被鎖定,但包含應用程序功能的.jar文件可以被更新。
事實上,Web Start就是爲此而設計的。首字母縮略詞JNLP表示'Java Network Launching Protocol'。 – 2010-04-01 23:51:57
針對JWS的+1也稱爲Java Web Start,自動更新,從中央位置輕鬆分發應用程序 – 2010-04-02 01:04:15