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

时间:2012-06-22 18:11:59

标签: java eclipse-plugin osgi

命令:

\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

有关上述错误的任何建议吗?

8 个答案:

答案 0 :(得分:25)

您需要安装几个软件包才能使用控制台,如果仅使用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

NB 您必须根据实际情况查看这些捆绑包的版本号。我尝试使用SDK-4.2M6,其中一些可能在RC3中发生了变化。

答案 1 :(得分:15)

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

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

答案 2 :(得分:8)

这是因为Eclipse的默认shell已被移动到" Apache Felix Gogo&#34 ;;所以必须将必要的捆绑包添加到"运行配置"在跑步之前。以下是您需要从列表中选择的四个捆绑包:

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

enter image description here

如上图所示添加后,程序运行顺畅。

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

答案 3 :(得分:7)

我遇到了同样的问题,我试图在config.ini文件中添加osgi.console.enable.builtin=true,但似乎每次运行项目时都会重新创建文件,解决问题的方式运行配置 - &gt;参数选项卡在VM参数enter image description here

中添加-Dosgi.console.enable.builtin=true

答案 4 :(得分:1)

我在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:)

答案 5 :(得分:0)

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

答案 6 :(得分:0)

其中一个变体是选择另一个 java版本 (早于默认值),eclipse旧版本在尝试运行 java 9错误时出错

sudo update-alternatives --config java

我选择 java 8 并且所有工作

答案 7 :(得分:-1)

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