OSGi 控制台未显示在命令行中



我正在尝试让OSGi示例应用程序正常工作,但是从命令行启动OSGi时遇到了麻烦。

请注意,我不想在 Eclipse OSGi 环境中运行该捆绑软件。这工作正常。


首先,我创建了示例捆绑包。之后,我尝试在命令行中运行该应用程序。为此,我按照上述文章、官方说明和相关问题中所述运行 OSGi jar:

$ cd
$ cp /usr/local/eclipse/plugins/org.eclipse.osgi_3.8.2.v20130124-134944.jar
     org.eclipse.osgi.jar
$ java -jar org.eclipse.osgi.jar -console

现在,OSGi似乎正在运行,但控制台未显示。


根据上述文章(请参阅第 4.2 节(和带有解决方案的相关问题,需要以下附加包:

  • org.eclipse.equinox.console
  • org.apache.felix.gogo.command
  • org.apache.felix.gogo.runtime
  • org.apache.felix.gogo.shell

他们失踪了吗?如果是,如何链接它们?


我的问题:如何在命令行中使用控制台运行OSGi?

感谢您的任何帮助!

编辑1:$ eclipse -console -noExit并关闭IDE是一种解决方法:-(遗憾的是,IDE 捆绑包也是以这种方式加载的。

这是一个通用命令,用于让它在Unix和Windows系统上与Equinox实现一起工作。

使用Eclipse 2018-12的安装进行测试,但是它也应该适用于其他版本。

转到插件目录

Unix, bash:

java -Dosgi.bundles=
$(ls -1 org.apache.felix.gogo.shell_*.jar)@start,
$(ls -1 org.apache.felix.gogo.command_*.jar)@start,
$(ls -1 org.apache.felix.gogo.runtime_*.jar)@start,
$(ls -1 org.eclipse.equinox.console_*.jar)@start
 -jar $(ls -1 org.eclipse.osgi_*.jar) -console

Windows,powershell(仅在控制台模式下工作(:

java ('-Dosgi.bundles='+((`
"$(ls org.apache.felix.gogo.shell_*.jar | select -ExpandProperty Name)`@start",`
"$(ls org.apache.felix.gogo.command_*.jar | select -ExpandProperty Name)`@start",`
"$(ls org.apache.felix.gogo.runtime_*.jar | select -ExpandProperty Name)`@start",`
"$(ls org.eclipse.equinox.console_*.jar | select -ExpandProperty Name)`@start"`
) -join ',')) '-jar' "$(ls org.eclipse.osgi_*.jar | select -ExpandProperty Name)" '-console'

Windows,powershell(也适用于ISE(:

Start-Process 'java' -ArgumentList `
(('-Dosgi.bundles=',`
"$(ls org.apache.felix.gogo.shell_*.jar | select -ExpandProperty Name)`@start,",`
"$(ls org.apache.felix.gogo.command_*.jar | select -ExpandProperty Name)`@start,",`
"$(ls org.apache.felix.gogo.runtime_*.jar | select -ExpandProperty Name)`@start,",`
"$(ls org.eclipse.equinox.console_*.jar | select -ExpandProperty Name)`@start",`
" -jar $(ls org.eclipse.osgi_*.jar | select -ExpandProperty Name) -console"
) -join '')

链接到日食错误:
错误371101 - Equinox控制台无法启动

解决方法是不运行OSGi Apache Felix Framework的Equinox实现,如上述相关问题中所述:

  • 下载框架。
  • 解压缩框架
  • 运行以下命令:

$ java -jar bin/felix.jar


无论如何,这对我来说似乎是一种解决方法,我仍然对如何从命令行使用 Equinox 框架感兴趣。

最新更新