Problem z instalacją Eclipse z Javą 9 na Ubuntu

2

Mam Xubuntu 17.10. Próbowałem zainstalować Eclipse przez apt-get. Gdy próbowałem go uruchomić, wystąpił błąd

An error has occurred. See the log file
/home/jaakko/.eclipse/org.eclipse.platform_3.8_155965261/configuration/1510564798671.log.

Plik dziennika jest następujący:

!SESSION 2017-11-13 11:19:57.077 -----------------------------------------------
eclipse.buildId=debbuild
java.version=9.0.1
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY org.eclipse.equinox.simpleconfigurator 4 0 2017-11-13 11:20:00.209
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle "org.eclipse.equinox.simpleconfigurator_1.0.301.dist [1]" could not be resolved. Reason: Missing Constraint: Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,J2SE-1.4
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316)
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:323)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
    at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.osgi 4 0 2017-11-13 11:20:00.222
!MESSAGE Bundle initial@reference:file:plugins/org.eclipse.equinox.simpleconfigurator_1.0.301.dist.jar was not resolved.

!ENTRY org.eclipse.osgi 2 0 2017-11-13 11:20:00.256
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2017-11-13 11:20:00.256
!MESSAGE Bundle initial@reference:file:plugins/org.eclipse.equinox.simpleconfigurator_1.0.301.dist.jar was not resolved.
!SUBENTRY 2 org.eclipse.equinox.simpleconfigurator 2 0 2017-11-13 11:20:00.256
!MESSAGE Missing required capability Require-Capability: osgi.ee; filter="(|(&(osgi.ee=CDC/Foundation)(version=1.1))(&(osgi.ee=JavaSE)(version=1.4)))".

!ENTRY org.eclipse.osgi 2 0 2017-11-13 11:20:00.268
!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 2017-11-13 11:20:00.268
!MESSAGE Bundle org.eclipse.equinox.simpleconfigurator_1.0.301.dist [1] was not resolved.
!SUBENTRY 2 org.eclipse.equinox.simpleconfigurator 2 0 2017-11-13 11:20:00.268
!MESSAGE Missing required capability Require-Capability: osgi.ee; filter="(|(&(osgi.ee=CDC/Foundation)(version=1.1))(&(osgi.ee=JavaSE)(version=1.4)))".

!ENTRY org.eclipse.osgi 4 0 2017-11-13 11:20:00.281
!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 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:564)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1414)

Odkryłem, że ten problem występuje, jeśli używam Java 9, ale nie, jeśli używam Java 8.

Jak mogę zainstalować Eclipse na moim komputerze, aby uruchomić Javę 9?

Jaakko Seppälä
źródło
Upewnij się, że JDK jest zainstalowany w twoim systemie przed instalacją Eclipse.
g_p
Zainstalowałem Java: java version "9.0.1" Java(TM) SE Runtime Environment (build 9.0.1+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)idefault-jdk 2:1.8-59ubuntu1
Jaakko Seppälä
sprawdź ten post
g_p
Jakie wydanie Eclipse? Potrzebujesz wersji Oxygen.1a (4.7.1a) dla Java 9.
greg-449,
1
Miałem ten sam problem z Eclipse neon i openjdk 9, ten zadziałał.
g_p

Odpowiedzi:

1

Ubuntu 18.04 i nowsze wersje

Pakiet Snap Eclipse z domyślnych repozytoriów Ubuntu jest idealny do programowania Java, ponieważ jest dołączony do środowiska programistycznego Java. Aby zainstalować, otwórz terminal i wpisz:

sudo snap install eclipse --classic  

To polecenie zainstaluje najnowszą wersję Eclipse IDE Photon Release 4.8 dla programistów Java, która została zaktualizowana 8 dni temu. Eclipse Photon JDT obsługuje Javę 9 całkowicie:

  • Kompilator Eclipse dla Java (ECJ) implementuje wszystkie nowe rozszerzenia języka Java 9.
  • Zaktualizowano istotne funkcje do obsługi modułów Java, takie jak kompilator, wyszukiwanie i wiele funkcji edytora.

Uwaga: Aby dodać nową wersję Java do Eclipse w 18.04 i późniejszych wersjach, na przykład openjdk-11-jdk, postępuj zgodnie z instrukcjami wymienionymi powyżej w krokach 1-9, zamień tylko ciąg java-9-openjdkna wersję Java, do której chcesz dodać Zainstalowane środowiska JRE .


Ubuntu 17.10

Zainstalowałem Eclipse Oxygen (najnowszą wersję Eclipse) i openjdk-9-jdk, a Eclipse współpracuje z openjdk-9-jdk w tej wersji. Jeśli chcesz zachować openjdk-8-jdk jako domyślną wersję Java do użycia w nowym Eclipse Oxygen, możesz otworzyć Eclipse i dodać openjdk-9-jdk z Eclipse w następujący sposób.

  1. Wybierz Okno -> Preferencje

  2. W okienku po prawej stronie okna Preferencje kliknij czarny trójkąt po lewej stronie Java, aby go rozwinąć.

  3. Kliknij dwukrotnie Zainstalowane środowiska JRE .

  4. Kliknij Dodaj po lewej stronie okna preferencji, aby dodać nowe środowisko JRE.

  5. Wybierz Standardową maszynę wirtualną i kliknij Dalej .

  6. W polu JRE Home: typ pola /usr/lib/jvm/java-9-openjdk-amd64(lub i386 zamiast amd64 dla 32-bitowego środowiska Eclipse)

  7. W polu Nazwa JRE: typ pola java-9-openjdk-amd64(lub i386 zamiast amd64 dla 32-bitowego środowiska Eclipse)

  8. Kliknij przycisk Zastosuj .

  9. Teraz w Zainstalowanych środowiskach JRE w kroku 3. możesz kliknąć pole wyboru po lewej stronie środowiska JRE na liście zainstalowanych środowisk JRE, aby wybrać je jako domyślne, a następnie kliknąć przycisk Zastosuj , aby zastosować zmianę w domyślnym zainstalowanym środowisku JRE.

Te same instrukcje nie działają dla domyślnej wersji Eclipse w Ubuntu 16.04.

Karel
źródło
2
  1. Musisz zainstalować openjdk-8-jre:

    sudo apt-get install openjdk-8-jre
    
  2. Następnie przejdź do wersji Jre-8:

    $ sudo update-alternatives --config java
    There are 2 choices for the alternative java (providing /usr/bin/java).
    
    Selection    Path                                            Priority   Status
    
    * 0            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       1091      auto mode
      1            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
      2            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       1091      manual mode
    
  3. sprawdź wersję Java:

    $ java -version
    openjdk version "1.8.0_151"
    OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.17.10.2-b12)
    OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
    
  4. rozpocząć zaćmienie

Airforce1
źródło
1
ten zadziałał dla mnie
Satya Arjunan