【发布时间】:2020-05-08 04:48:20
【问题描述】:
我正在尝试手动安装 Eclipse for C/C++,因为 Ubuntu 软件中心中包含的版本似乎仅用于 Java 开发。我完成了下面链接的指南中包含的步骤。但是,当我尝试启动时,我收到以下错误:
XYZ@ubuntu:~/Downloads$ sudo eclipse
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.eclipse.osgi.internal.baseadaptor.BaseStorage (file:/opt/eclipse/plugins/org.eclipse.osgi_3.6.2.R36x_v20110210.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of org.eclipse.osgi.internal.baseadaptor.BaseStorage
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
显示此警告后,Eclipse 无法启动。
以下是 Eclipse 中的错误日志条目:
!SESSION 2020-05-07 22:53:03.283 -----------------------------------------------
eclipse.buildId=M20110210-1200
java.version=11.0.7
java.vendor=Ubuntu
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments: -product org.eclipse.epp.package.linuxtools.product
Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.linuxtools.product
!ENTRY org.eclipse.equinox.simpleconfigurator 4 0 2020-05-07 22:53:03.668
!MESSAGE
!STACK 0
org.osgi.framework.BundleException: The bundle "org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503 [1]" could not be resolved. Reason: Missing Constraint: Bundle-RequiredExecutionEnvironm>
at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1317)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1301)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:319)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
!ENTRY org.eclipse.osgi 4 0 2020-05-07 22:53:03.672
!MESSAGE Bundle initial@reference:file:plugins/org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503.jar/ was not resolved.
!ENTRY org.eclipse.osgi 2 0 2020-05-07 22:53:03.679
!MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists:
!SUBENTRY 1 org.eclipse.osgi 2 0 2020-05-07 22:53:03.679
!MESSAGE Bundle org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503 [1] was not resolved.
!SUBENTRY 2 org.eclipse.equinox.simpleconfigurator 2 0 2020-05-07 22:53:03.679
!MESSAGE Missing Constraint: Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,J2SE-1.4
!ENTRY org.eclipse.osgi 4 0 2020-05-07 22:53:03.680
!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:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
不幸的是,我既不熟悉 Java,也未能在线找到解决方案。任何帮助将不胜感激。
我使用的指南: https://linuxconfig.org/eclipse-ide-for-c-c-developers-installation-on-ubuntu-20-04
【问题讨论】:
-
这些是警告,而不是错误,都是关于 Eclipse 和现代 JDK 之间的兼容性,所以只有 Eclipse 团队才应该关心。
-
不幸的是 Eclipse 在显示这些警告后立即崩溃(抱歉,我刚刚编辑了我的原始帖子以说明这一点)。
-
Eclipse 不需要 root 帐户来运行,您是否有一些具体情况需要这样做(我看到 'sudo')?
-
没有。我尝试使用和不使用 sudo,结果完全相同(我只是在尝试使用 sudo 时添加了代码)
-
看起来您正在尝试使用非常过时的 Eclipse 版本: org.eclipse.osgi_3.6.2.R36x_v20110210.jar ,但我有 org.eclipse.osgi_3.15.200.v20200214-1600.jar