如何启动OSGi控制台(Equinox)

16

我试图在Windows 7上启动一个OSGi控制台。

我在终端窗口上使用了这个语句:

java -jar org.eclipse.osgi.jar -console

但是它不起作用,什么也不会发生,也没有出现提示osgi>。键盘输入无效,除了^C,这会使通常的终端提示重新出现。

有人有任何建议吗?


可能是OSGi控制台未在命令行中显示的重复问题。 - Frédéric
3个回答

21

从Equinox 3.8.0.M4版本开始,它有了一个新的控制台。因此,您还需要这四个捆绑包才能使其正常运行。

  1. org.eclipse.equinox.console.jar
  2. org.apache.felix.gogo.shell.jar
  3. org.apache.felix.gogo.command.jar
  4. org.apache.felix.gogo.runtime.jar

这些JAR文件可以在Eclipse安装文件夹中的“plugins”文件夹下找到。将这些JAR复制并放入与您的org.eclipse.osgi.jar相同的文件夹中,它应该看起来像这样:

  • somedir/
    • configuration/
      • config.ini
    • org.eclipse.osgi.jar
    • org.eclipse.equinox.console.jar
    • org.apache.felix.gogo.shell.jar
    • org.apache.felix.gogo.command.jar
    • org.apache.felix.gogo.runtime.jar

然后按以下方式编辑config.ini

osgi.bundles=org.apache.felix.gogo.runtime@start, org.apache.felix.gogo.command@start, org.apache.felix.gogo.shell@start, org.eclipse.equinox.console@start

完成以上步骤后,在命令行中运行java -jar org.eclipse.osgi.jar -console,即可启动OSGi控制台。

参考Bug 371101

更新:06/2022:

与此同时,所需的捆绑包清单变得更长了:

osgi.bundles= \
    org.apache.felix.gogo.runtime_1.1.4.v20210111-1007.jar@start, \
    org.apache.felix.gogo.command_1.1.2.v20210111-1007.jar@start, \
    org.apache.felix.gogo.shell_1.1.4.v20210111-1007.jar@start, \
    org.eclipse.equinox.console_1.4.500.v20211021-1418.jar@start, \
    org.eclipse.osgi.services_3.10.200.v20210723-0643.jar@start, \
    org.osgi.util.function_1.2.0.202109301733.jar@start, \
    org.osgi.util.promise_1.2.0.202109301733.jar@start, \

请注意,您可以直接在插件文件夹中引用org.eclipse.osgi。如果这样做,您的配置文件夹位于插件文件夹中!

java -jar plugins\org.eclipse.osgi_3.18.0.v20220516-2155.jar -console

1
刚刚尝试了一下在 equinox 4.10 上的操作。我将所有文件复制到一个新文件夹中,并重命名了 jar 文件(去掉了版本号),结果成功了。谢谢。 - Lars Juel Jensen

6

从3.8版本开始,Equinox内置控制台被弃用并禁用。如果您使用的是更新的版本,则应该使用osgi.console.enable.builtin=true属性。请参见http://hwellmann.blogspot.hu/2012/08/new-osgi-console-in-equinox-380.html

您可以将这些属性设置为系统属性。您的命令将是:

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

这个方法在我使用3.8版本时有效。但我刚刚尝试了3.10版本,它不起作用。我猜内置的控制台已经完全被移除了。

你应该使用已成为事实标准的gogo控制台。你可以在上面的链接中找到相关信息。


0

您还可以更改Eclipse插件所在的目录,并发出类似以下命令:

java -Dosgi.bundles=.\org.apache.felix.gogo.shell_1.1.0.v20180713-1646.jar@start,.\org.apache.felix.gogo.command_1.0.2.v20170914-1324.jar@start,.\org.apache.felix.gogo.runtime_1.1.0.v20180713-1646.jar@start,.\org.eclipse.equinox.console_1.3.100.v20180827-1235.jar@start -jar org.eclipse.osgi_3.13.100.v20180827-1536.jar -console

这将启动OSGi控制台


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接