Ubuntu 18.04 mit OpenJDK
aktualisiert: 17-08-2022
Nachdem ich nun endlich auf Ubuntu 18.04 umgestiegen bin, habe ich mich auch gleich entschlossen, das Oracle-JDK, welches ich vorher über WebUpd8 installiert habe, durch das OpenJDK zu ersetzen.
In den Paketquellen findet man hier zwei Versionen:
- openjdk-8-jdk mit openjdk-8-jre
- openjdk-11-jdk mit openjdk-11-jre
Das Paket trägt die Versionsnummer 11, jedoch ist hier noch die Version 10.0.2 enthalten. Sobald aber Version 11 verfügbar ist, wird diese automatisch ersetzt (Verfügbarkeit ab dem 25.09.2018).
Installation von OpenJDK:
sudo apt install openjdk-11-jdk openjdk-11-jre openjdk-8-jdk openjdk-8-jre
Für die tägliche Arbeit habe ich mich aber dafür entschieden, weiterhin mit Version 8 zu arbeiten. Version 11 ist mit dem Bytecode nicht mehr abwärtskompatibel, was bedeutet, dass meine ganzen alten JARs (z.B. Apache-ANT-Erweiterungen) nicht mehr laufen würden. Diese werde ich erst Schritt für Schritt umstellen.
Festlegen der OpenJDK-Version für java und javac:
sudo update-alternatives --config java Es gibt 2 Auswahlmöglichkeiten für die Alternative java (welche /usr/bin/java bereitstellen). Auswahl Pfad Priorität Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 automatischer Modus 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manueller Modus * 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manueller Modus Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein: 2 sudo update-alternatives --config javac Es gibt 2 Auswahlmöglichkeiten für die Alternative javac (welche /usr/bin/javac bereitstellen). Auswahl Pfad Priorität Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 1101 automatischer Modus 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 1101 manueller Modus * 2 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1081 manueller Modus Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein: 2
Der Test zeigt:
java -version openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode) javac -version javac 1.8.0_181
Will ich mit Version 11 arbeiten, dann wird der Suchpfad entsprechend angepasst, beispielsweise direkt im Aufrufskript.
export JDK_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JDK_HOME/bin:$PATH
Problem: jEdit
Rufe ich jetzt aber jEdit auf, hat es gleich geknallt!
10:22:27 [main] [error] main: Exception in thread "main"
10:22:27 [main] [error] main: java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
Hier wird der AtkWrapper nicht gefunden. Lösen lässt sich das Problem, indem man in der Konfigurationsdatei /etc/java-11-openjdk/accessibility.properties
(bzw. … java-8-openjdk
…) die Zeile
assistive_technologies=org.GNOME.Accessibility.AtkWrapper
mit # auskommentiert.
JavaFX
JavaFX ist nicht mehr standardmäßig im OpenJDK enthalten. Man kann es aber sehr leicht nach installieren.
sudo apt install openjfx