我们需要使用户能够启动将连接到服务器的Eclipse RCP应用程序。除了JRE,用户不需要安装其他任何东西。并且必须始终将应用程序更新到最新版本。

由于Java Webstart宣传解决所有问题,因此我们目前正在使用它。但是从7u25开始,我们对此有很多麻烦,我们的应用程序甚至拒绝使用7u45。

这就是我正在考虑另一种部署策略的原因,谷歌chrome也使用该策略:如果您要转到http://chrome.google.com,则无需下载zip甚至exe文件,然后让浏览器手动安装chrome 。而是(在Windows上)直接启动安装程序。此安装程序甚至足够智能,可以识别是否已安装chrome,并且不会再次请求管理员权限,而只是启动浏览器。

我计划使用Java实现类似的安装程序。该安装程序仍将使用Webstart启动,但只会安装一个小的Eclipse内核,然后将使用Eclipse更新机制自动安装其余的内核。因此,Webstart启动器可能在一段时间内根本不会更改,从而减少了Webstart带来的许多麻烦。

但是,即使我们将基础从juno更改为kepler,Eclipse更新机制是否能够可靠地更新Eclipse RCP应用程序?还是需要在主要版本更改时卸载客户端,从而导致与Webstart相比更加糟糕的情况?

最佳答案

WebStart现在被认为存在安全风险,我认为所有下载都必须使用可追溯的证书签名(无自签名)。
我也不确定主要/次要版本,但是您需要配置RCP应用程序以默认情况下在启动时检查更新。使用您的品牌在插件中创建文件plugin_customization.ini并添加以下内容:

org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = true
# check for updates on startup
org.eclipse.equinox.p2.ui.sdk.scheduler/enabled=true
org.eclipse.equinox.p2.ui.sdk.scheduler/schedule=on-startup

# remind the user every 4 hours
org.eclipse.equinox.p2.ui.sdk.scheduler/remindOnSchedule=false

# download updates before notifying the user
org.eclipse.equinox.p2.ui.sdk.scheduler/download=true

10-07 16:50