当我尝试在 ubuntu 中运行 eclipse 时出现此错误,请帮忙

当我尝试在 ubuntu 中运行 eclipse 时出现此错误,请帮忙
java.lang.ExceptionInInitializerError
    at org.eclipse.osgi.storage.Storage.<init>(Storage.java:101)
    at org.eclipse.osgi.storage.Storage.createStorage(Storage.java:88)
    at org.eclipse.osgi.internal.framework.EquinoxContainer.<init>(EquinoxContainer.java:66)
    at org.eclipse.osgi.launch.Equinox.<init>(Equinox.java:31)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:303)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:239)
    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:547)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @48a242ce
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:335)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:278)
    at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:196)
    at java.base/java.lang.reflect.Method.setAccessible(Method.java:190)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.findMethod(FrameworkExtensionInstaller.java:51)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.findMethod(FrameworkExtensionInstaller.java:58)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.findAddURLMethod(FrameworkExtensionInstaller.java:42)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.<clinit>(FrameworkExtensionInstaller.java:36)
    ... 14 more

答案1

您遇到的问题是您安装的 JDK 版本。版本 9 与许多 Java 应用程序并不完全兼容。大多数针对版本 9 优化的应用程序都向下兼容版本 8。

您可以通过安装 Java 版本 8(这是 Ubuntu 16.04 LTS 和 17.X 的默认版本)来解决此安装问题。

使用以下命令安装默认 Java JDK 版本:

$ sudo apt install default-jdk

然后使用以下命令切换到版本 8 默认版本:'

 $ sudo update-alternatives --config java

现在您的 Eclipse 安装应该可以顺利进行。您还可以顺利运行已安装的程序。

有时如果您想测试版本 9 的兼容性,您可以使用update-alternatives --config java上面的命令在版本之间切换。

笔记:

供你参考,安装后 Eclipse 将与 Java 版本 9 配合使用。版本问题在于安装程序中的一个小故障。因此,安装 Eclipse IDE 后,启用哪个版本可能并不重要。

答案2

尝试卸载 Java 和 Eclipse。然后先安装 Java 和 Eclipse。这样就可以了。

相关内容