org.osgi.framework.BundleException:找不到包:org.eclipse.equinox.console

Posted

技术标签:

【中文标题】org.osgi.framework.BundleException:找不到包:org.eclipse.equinox.console【英文标题】:org.osgi.framework.BundleException: Could not find bundle: org.eclipse.equinox.console 【发布时间】:2012-06-25 02:05:50 【问题描述】:

命令:

\eclipse-SDK-4.2RC3-win32-x86_64_001\eclipse\plugins>java -jar org.eclipse.osgi_3.8.0.v20120529-1548.jar -console

异常(来自日志文件)

!SESSION 2012-06-22 23:36:27.649 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_25
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments:  -console

!ENTRY org.eclipse.osgi 4 0 2012-06-22 23:36:28.632
!MESSAGE Could not find bundle: org.eclipse.equinox.console
!STACK 0
org.osgi.framework.BundleException: Could not find bundle: org.eclipse.equinox.console
    at org.eclipse.osgi.framework.internal.core.ConsoleManager.checkForConsoleBundle(ConsoleManager.java:211)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:297)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.main(EclipseStarter.java:151)

!ENTRY org.eclipse.osgi 4 0 2012-06-22 23:36:28.663
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.main(EclipseStarter.java:151)

但是下面的 jar 是可用的。

org.eclipse.equinox.console_1.0.0.v20120522-1841.jar

对上述错误有什么建议吗?

【问题讨论】:

这可能对digizol.com/2013/11/…有帮助 【参考方案1】:

您需要安装几个捆绑软件才能使用控制台,如果您仅使用 java -jar ... 启动 Equinox,那么您将无法获得这些捆绑软件。

完成这项工作的最快方法是创建一个名为 configuration/config.ini 的文件,其内容如下:

osgi.bundles=file\:org.eclipse.equinox.console_1.0.0.v20111215-1210.jar@start,file:\org.apache.felix.gogo.runtime_0.8.0.v201108120515.jar@start,file:\org.apache.felix.gogo.shell_0.8.0.v201110170705.jar@start

注意您必须对照您实际拥有的版本查看这些捆绑包的版本号。我用 SDK-4.2M6 试过这个,可能其中一些在 RC3 中发生了变化。

【讨论】:

谢谢!你拯救了我的周末!【参考方案2】:

在新版本的 Equinox 中,内置的 OSGi shell 已替换为 felix gogo shell。如果你想使用新的 shell,你必须放置 gogo jars,并在你的配置文件中定义它们。

但是,如果您喜欢 OSGi Equinox shell,您只需在您的 config.ini 文件中添加以下行即可使用它:osgi.console.enable.builtin=true。在这种情况下,无需添加额外的 jar 或任何配置。

【讨论】:

根据Virtage Devblog,此属性也可以添加为系统属性,例如"-Dosgi.console.enable.builtin=true" 这在 Eclipse Kepler 上对我有用,将其作为 VM 参数添加到运行配置中,但在尝试从 Eclipse 外部运行时不起作用(在这种情况下,接受的答案正常)。【参考方案3】:

我在 Ubuntu Linux 上使用 Eclipse Helios 和 Eclipse Juno。我在 Eclipse Juno 上遇到了同样的错误,我无法启动 Eclipse。 我不知道如何,但我的 Java 版本降低到了 1.5,这导致了问题

在 Eclipse Helios 中,Java 1.5 引起了问题,但我能够启动 Eclipse。 Eclipse Helios 出现的错误是:

An internal error occurred during: "Loading Web Service DOM...".

org.eclipse.emf.ecore.util.EcoreEMap$DelegateEObjectContainmentEList

将 Java 版本更新到 1.7 解决了该问题。我猜 Eclipse Juno 不适用于 Java 1.5 :)

【讨论】:

【参考方案4】:

我遇到了同样的问题,我尝试在 config.ini 文件中添加 osgi.console.enable.builtin=true,但似乎每次我运行项目时都会重新创建文件,我解决问题的方式是运行配置 --> 参数选项卡添加虚拟机参数中的-Dosgi.console.enable.builtin=true

【讨论】:

【参考方案5】:

这是因为 Eclipse 的默认 shell 已移至“Apache Felix Gogo”;因此必须在运行前将必要的捆绑包添加到“运行配置”中。以下是您需要从列表中选择的四个捆绑:

org.apache.felix.gogo.command_0.10.0v<version>.jar
org.apache.felix.gogo.runtime_0.10.0v<version>.jar
org.apache.felix.gogo.shell_0.10.0v<version>.jar
org.eclipse.equinox.console_1.0.100<version>.jar

如上图所示添加这些后,程序运行流畅。

参考:http://www.digizol.com/2013/11/Eclipse-org-osgi-framework-BundleException-equinox-console.html

【讨论】:

【参考方案6】:

尝试使用新的工作区。要强制工作区窗口提示,您需要更改Eclipse_root_dir\configuration\.settings\org.eclipse.ui.ide.prefs中的设置并将SHOW_WORKSPACE_SELECTION_DIALOG设置为true

【讨论】:

【参考方案7】:

其中一个变体是选择另一个 java 版本(较旧的默认版本),eclipse 旧版本在尝试在 java 9 错误上运行时出错强>

sudo update-alternatives --config java

我选择了 java 8 并且一切正常

【讨论】:

【参考方案8】:

转到Eclipse_root_dir\configuration\.settings\org.eclipse.ui.ide.prefs 并将RECENT_WORKSPACES 的路径更改为其他路径。

【讨论】:

这个问题已经很老了,已经有一个公认的答案。您的回答没有说​​明任何新内容。

以上是关于org.osgi.framework.BundleException:找不到包:org.eclipse.equinox.console的主要内容,如果未能解决你的问题,请参考以下文章