向Java Swing应用程序添加自我更新功能的最佳方法是什么?


问题内容

我正在尝试找出一种向我正在开发的Java / Swing应用程序添加自我更新功能的方法。

基本上,我有一堆具有额外功能的jar文件,可以在安装的用户进行更改时将其重新部署到他们那里。没什么复杂的,只需检查是否已发布新版本,通过HTTP下载它们,然后选择提供给用户重新启动应用程序即可。

我看了一下webstart,它可以工作。但是,这个特定的应用程序在类加载和GC内存设置方面做了一些时髦的事情,看起来并不像通过webstart受到支持,或者至少会使事情复杂化。(这是JMeter的经过调整的版本)

我还沿着添加此插件处理程序的路走了http://swing-fx.blogspot.com/2008/06/add-auto-update-and-
plugins-to-your.html
,但它非常Alpha,并尝试对与alpha东西相关的常见错误进行过多处理。


问题答案:

我做了完全一样的事情。但这很久以前了,所以今天可能有更好的工具。

我发现我需要的是装载机。加载程序主程序在classpath中没有应用程序jar。它首先下载了一个更新(如果需要),然后使用类路径中的应用jar创建了一个自定义类加载器,并调用了应用主类的main方法。这不是很复杂。IIRC我需要这样做,因为如果罐子已经在类路径中,则它们不能在Windows中被覆盖。

希望这可以帮助。