24

命令 :

\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

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

4

8 回答 8

28

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

最快的方法是创建一个包含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 中发生了变化。

于 2012-06-22T21:01:46.833 回答
17

In the new versions of equinox the built-in OSGi shell has been replaced to the felix gogo shell. If you want to use the new shell you have to place the gogo jars, and define them in your config file.

But, if you liked the OSGi Equinox shell you just have to add the following line to your config.ini file to use it: osgi.console.enable.builtin=true. In this case no need to add extra jars or any configuration.

于 2012-12-02T17:31:02.927 回答
10

这是因为 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

于 2016-02-04T17:08:25.773 回答
7

我有同样的问题,我试图osgi.console.enable.builtin=true在 config.ini 文件中添加,但似乎每次我运行项目时都会重新创建文件,我解决问题的方式运行配置 --> 参数选项卡-Dosgi.console.enable.builtin=true在 VM 参数中添加在此处输入图像描述

于 2014-02-04T10:53:04.127 回答
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 :)

于 2012-12-26T19:32:37.357 回答
0

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

sudo update-alternatives --config java

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

于 2017-12-13T08:23:55.190 回答
0

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

于 2016-08-01T06:20:16.397 回答
-1

转到Eclipse_root_dir\configuration\.settings\org.eclipse.ui.ide.prefs并将路径更改RECENT_WORKSPACES为一些不同的路径。

于 2019-07-10T17:24:37.930 回答