【问题标题】:Standalone OSGi (Equinox) server on Eclipse JunoEclipse Juno 上的独立 OSGi (Equinox) 服务器
【发布时间】:2025-12-22 13:00:17
【问题描述】:

我正在尝试从 Eclipse Juno Release 中获取 osgi 服务器并独立运行它。一些旧教程说,只需抓住org.eclipse.osgi_VERSION.jar 就足以从命令行启动它

java -jar  org.eclipse.osgi_VERSION.jar -console

当我尝试这样做时,它没有按预期显示提示,而是静静地坐着,好像在等待某事发生。

但是,我可以通过 ./eclipse -console 轻松地启动和安装捆绑包,这显然不是在服务器上运行时的选项,我想在运行时部署捆绑包。

一些谷歌搜索显示我需要从这里和那里收集罐子(甚至是 Apache Felix 的 gogo),但找不到任何具体的东西可以让我以“无头”方式运行这个东西。

有没有办法以一种干净简单的方式做到这一点,或者你会建议转向 Apache Felix?

【问题讨论】:

标签: java eclipse-plugin osgi


【解决方案1】:

Juno 中的 Equinox 不再包含开箱即用的控制台。它现在包含在一个单独的包中,该包在 Apache GoGo shell 之上实现了 Equinox 控制台。

因此,运行 Equinox包括控制台 的捆绑包的最低设置是:

  • org.eclipse.osgi
  • org.eclipse.equinox.console
  • org.apache.felifx.gogo.command
  • org.apache.felifx.gogo.runtime
  • org.apache.felifx.gogo.shell

为了运行 SSH 控制台,还需要:

  • org.eclipse.equinox.console.ssh
  • org.apache.mina.core
  • org.apache.sshd.core

此外,您需要使用不同的配置区域。 Equinox 从 config.ini 读取设置(例如要使用的包、它们的启动级别、要启动的应用程序等)。因此,只要您使用与 Juno 相同的配置区域,您将始终处于 Juno 环境中。直接修改 config.ini 可能会损坏 Juno 安装。

更好的开始是下载 Equinox Juno OSGi 入门套件:

您也可以尝试其中一种 OSGi Equinox 服务器发行版:

【讨论】:

  • Juno OSGi 入门工具包与 org.eclipse.osgi_VERSION.jar 基本相同。经过深思熟虑,我决定从 Equinox 搬到 Felix(实际上是 Karaf)——主要是因为我们项目需要的人为维护问题,而不是其他任何事情。不过谢谢你的回答,肯定帮了大忙!
【解决方案2】:

你应该试试 Apache karaf。它可以与 Felix 或 Equinox 一起运行,并包含您所需的一切,以获得一个像样的 OSGi 服务器。见http://karaf.apache.org/

【讨论】:

  • 老实说,这就是我最后使用的方法! @Christian Schneider 我正在浏览您的帖子...
【解决方案3】:

试试这个:

java -classpath ./plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
    org.eclipse.equinox.launcher.Main -console

【讨论】:

  • 不单独运行服务器......也启动了eclipse。感谢您的回答..
【解决方案4】:

此链接提供有关基于 Apache Felix Gogo shell 的新控制台的所有详细信息:http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fconsole_shell.htm

简短的步骤是:

  1. 将必要的捆绑包放在一个文件夹中。捆绑包是: org.apache.felix.gogo.command_0.8.0v.jar org.apache.felix.gogo.runtime_0.8.0v.jar org.apache.felix.gogo.shell_0.8.0v.jar org.eclipse.equinox.console_1.0.0v.jar org.eclipse.osgi.jar

  2. 创建一个配置子文件夹和一个config.ini文件,内容如下

    osgi.bundles=./org.apache.felix.gogo.runtime_0.8.0v.jar@start,\ ./org.apache.felix.gogo.command_0.8.0v.jar@start,\ ./org.apache.felix.gogo.shell_0.8.0v.jar@start,\ ./org.eclipse.equinox.console.jar@start,\ osgi.console.enable.builtin=false

  3. 使用以下命令启动 Equinox 框架: java -jar org.eclipse.osgi.jar

【讨论】:

    【解决方案5】:

    要使用旧控制台运行,您可以调用:

    java -Dosgi.console.enable.builtin=true -jar org.eclipse.osgi_VERSION.jar -console

    请注意,这是使用旧的(非 Gogo 实现),内置控制台可能会在某个时候被删除。但是,您应该考虑使用 Gogo shell 运行,这是未来 Eclipse 和 Felix 版本的事实标准。

    【讨论】: