Hello Stack溢出的朋友。我有一個簡單的問題,我擔心沒有一個簡單的解決方案,我需要關於如何進行的建議。我正在開發一個打包爲可執行JAR的Java應用程序,但它需要在執行期間修改其某些JAR文件內容。在這個階段,我遇到了一個問題,因爲有些操作系統會鎖定該文件以防止寫入文件修改執行Jar文件
當應用程序退出時,用戶看到jar文件的更新版本是非常重要的,儘管我可以非常靈活地知道如何實現這一點。清潔高效的解決方案顯然是可取的,但可移植性是唯一的硬性要求。
以下是我可以看到解決問題的三種方法,隨時對其進行評論或建議其他人。
- 告訴Java解開的JAR文件寫入(這似乎並不可能,但是這將是easyest溶液)
- 複製可執行的類文件,應用程序啓動一個tempory文件,使用一個類加載器加載這些文件並從最初的JAR文件中卸載(對於類加載器沒有太多經驗,但希望JVM能夠足夠聰明地認識到原始JAR不再使用並解鎖它)
- 放一秒可執行JAR文件首先在啓動時將內部jar提取到臨時文件,使用複製的內部JAR調用新的java進程並將其傳遞到外部JAR的位置,第一個進程(這將工作,但我不知道有一個Java應用程序調用另一個平臺獨立的方式)
我知道這是一個奇怪的問題,但任何幫助將不勝感激。
你能否給出任何指示說明爲什麼你需要在執行過程中修改jar文件? – Poindexter 2010-03-17 16:03:08
@pinkynobrain你在想老式的螞蟻的方式,我建議你閱讀maven的例子免費電子書,你會發現你的建議沒有道理..我不想冒犯你只是想幫助你..有沒有我們一直在那裏 – ant 2010-03-17 16:10:33
你想達到什麼 - 一個自我更新的應用程序? – 2010-03-17 16:41:31