使用Web Start / JNLP动态加载其他jar文件

“ Web Start Developers指南”指出

必须从JNLP文件的resources部分中指定的JAR文件中检索所有应用程序资源,或者使用对Web服务器的HTTP请求显式检索所有应用程序资源。

建议在JAR文件中存储资源,因为它们将由Java Web Start缓存在本地计算机上。

现在,我有一些资源,我想在我的应用程序启动后动态加载(例如OSGi包)。 我可以使用普通的HTTP做到这一点,但我想利用Web Start对本地缓存和版本化/体系结构特定资源的支持。

有没有办法使用Web Start基础架构从原始代码库(在应用程序的jnlp文件中指定)下载其他jar文件?

或者:是否已经建立了集成OSGi和Web Start的方法,这将减轻我从Web Start服务器安装捆绑包的任务?

如果您将应用程序本身设置为基于Equinox的OSGI应用程序,则可以使用所需的所有附加软件包进行Web启动。

本文“ WebStarting Equinox OSGi Apps ”可以为您提供所需设置的良好介绍。

  • 所有捆绑包都必须部署为签名的JAR文件
  • 您需要一个包含所有必需包的function
  • 导出该function时,请确保PDE为此function创建JNLP(Java网络启动协议)文件(导出向导中的复选框)
  • 为您的应用程序提供根JNLP文件
  • 将应用程序部署到Web服务器并确保Web服务器知道application / x-java-jnlp-file mime类型

他还有一个OSGI演示 。

我没有尝试过,但请查看javax.jnlp.DownloadService API