【问题标题】:Apache Felix & Web Start: loading bundlesApache Felix 和 Web Start:加载包
【发布时间】:2025-12-08 11:45:02
【问题描述】:

我读过类似的问题,但我仍然没有把所有的部分放在一起。

是否可以(如果可以,如何)通过 Java Web Start 启动基于 Apache Felix 的 OSGi 桌面应用程序?

我主要担心的是,如果要启用 Web Start 的更新检查(这是一项要求),则必须在 JNLP 文件中的某处指定捆绑包。但我看到的唯一可以帮助的是 jar 资源。但这只会将 jars 添加到类路径中,而不是将它们作为包启动。

有什么想法吗?

【问题讨论】:

    标签: java osgi java-web-start apache-felix


    【解决方案1】:

    没错,您在 JNLP 中列出的任何 JAR 都将简单地放在类路径中。没有办法让 Web Start 将它们作为包安装,因为 Web Start 对 OSGi 一无所知。

    您可以使用 Web Start 启动一个小型启动器应用程序,该应用程序仅由 OSGi 框架和某种“管理代理”组成。然后,该管理代理可以使用其他方式(例如 OBR)从存储库安装和更新捆绑包。

    这种方法还可以帮助您最终完全从 Web Start 迁移,这将是最好的,因为 Web Start 已过时,甚至可能在未来的 Java 版本中不受支持。

    【讨论】:

    • 您能否指出其中提到 Web Start 已过时的声明?这对我来说将是一个新信息。这是为 Java EE 应用程序提供富客户端的标准方法之一,甚至 JavaFX 都带有特殊的 Web Start 扩展。
    • 当然,您不会找到有关此效果的官方 Oracle 声明。这是我根据观察到的行业趋势得出的看法......我很惊讶听到有人谈论基于 Web Start 的新系统,就像听到他们谈论 Powerbuilder 或 Delphi 一样。
    • 至于在未来的 Java 版本中不支持...... Oracle 因与几乎没人使用的 Java 的两个部分相关的安全问题而感到痛苦:Web Start 和 Applets。例如,这被认为是延迟发布 Java 8 的原因。他们已经提供了 Java 的“服务器版本”,没有 WS 和浏览器插件,该版本成为标准版本只是时间问题。跨度>
    • AFAIK 安全问题主要来自插件。您不必使用插件来使用 Web Start AFAIK。您还建议哪些具有类似功能来部署 Java EE 富客户端(独立于平台、桌面图标、更新检查、除了 Web 服务器之外不需要其他服务器......)?当然,某些平台有应用商店,但并非所有平台都有。而且您不想将内部应用部署到公共应用商店。
    • 当然,只需安装一个连接到 OSGi 存储库并安装包的 Java 程序。无论如何,您将需要其中的大部分内容,因为(回到实际发布的问题)Web Start 仅适用于更新类路径上的 JAR。