在java中简单的“检查更新”库

我正在使用Eclipse RCP,但是,主要是因为我完全控制了UI(删除了所有的贡献,从头开始制作了首选项等)我只是不能接受所包含的UPDATE MANAGER的复杂性和要求(另外,我使用PLUGINS而不是function,应用程序插件必须提取 – 虽然我可以得到最后一期的问题)。

无论如何,在第一种方法,我只想检查是否有更新版本的应用程序可用。

逻辑方法是检查服务器上的文件(xml?)。

那里有一个很好的图书馆和例子吗?

谢谢。

Eclipse现在支持p2,这是一个比旧的更新管理器更灵活的系统。 它可用于安装新软件并检查现有软件的更新。

您可以在没有UI的情况下包含p2的自我更新部分,尽管此处描述了包含帮助>安装新更新的完整过程http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application

如果您使用某项function,eclipse中的所有更新都会更容易管理,但该function可以将您的RCP应用插件标记为扩展到目录而不是jar(它会自动执行)。

将自我更新添加到任何应用程序都是非常重要的。 您是一次更新所有jar子,还是只选择一个jar子? 哪个jar子同时更新是有意义的? 使用基于OSGi的eclipse,如何确保更新使系统处于工作状态? p2旨在帮助管理这些用例。 见http://wiki.eclipse.org/P2

编辑:

可以使用p2 API添加简单的自我更新,而不包含任何UI代码:

public class SelfUpdateOperation { public static void update() { BundleContext context = FrameworkUtil.getBundle( SelfUpdateOperation.class).getBundleContext(); ServiceReference reference = context .getServiceReference(IProvisioningAgent.SERVICE_NAME); if (reference == null) return; Object obj = context.getService(reference); IProvisioningAgent agent = (IProvisioningAgent) obj; ProvisioningSession session = new ProvisioningSession(agent); UpdateOperation update = new UpdateOperation(session); IStatus result = update.resolveModal(new NullProgressMonitor()); if (result.isOK()) { update.getProvisioningJob(new NullProgressMonitor()).schedule(); } else { // can't update for some reason } context.ungetService(reference); } } 

这需要一点工作(可能产品必须包含更新站点),但这是基本的API。

使用Java Web Start启动应用程序。 自动更新是JWS的主要function之一。