我想实现一个Java应用程序(服务器应用程序),该应用程序可以从给定的URL下载新版本(.jar文件),然后在运行时进行自身更新。最好的方法是什么,有可能吗?我猜该应用程序可以下载一个新的.jar文件并启动它。但是我应该如何进行切换,例如知道何时启动新应用程序然后退出。还是有更好的方法来做到这一点?
3 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
我目前正在开发JAVA Linux守护程序,也需要实现自动更新机制。我想将应用程序限制在一个jar文件中,并提出了一个简单的解决方案:
将更新程序应用程序打包在更新本身中。
应用程序:当应用程序检测到较新版本时,它将执行以下操作:
下载更新(Zipfile)
提取Application 和ApplicationUpdater(均在zip文件中)
运行更新程序
ApplicationUpdater:运行更新程序时,它将执行以下操作:
停止应用程序(在本例中为通过init.d的守护程序)
复制下载的jar文件以覆盖当前的应用程序
启动应用程序
清理。
希望它可以帮助某人。
jeck猫
TA贡献1909条经验 获得超7个赞
我编写了一个Java应用程序,该程序可以在运行时加载插件并立即开始使用它们,这受到jEdit中类似机制的启发。jEdit是开源的,因此您可以选择查看其工作方式。
该解决方案使用自定义的ClassLoader从jar中加载文件。加载它们后,您可以从新的jar中调用某些方法作为其main
方法。然后,棘手的部分是确保您摆脱对旧代码的所有引用,以便可以对其进行垃圾回收。我在这方面还不是专家,我已经做到了,但这并不容易。
添加回答
举报
0/150
提交
取消