當我嘗試在 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。它會起作用的。

相關內容