Aus EasyLinux 01/2012

Verschiedene Java-Versionen unter Linux

© Hans-Georg Eßer

Versionsvielfalt

Zahlreiche Java-Versionen wie Sun Java, Oracle Java, Blackdown, OpenJDK, IcedTea oder GnuJava stehen unter Linux zur Verfügung. Da viele Anwendungen und unzählige Webseiten Java voraussetzen, geben wir eine Übersicht. Sie erfahren auch, wie Sie mit mehreren gleichzeitig installierten Java-Versionen umgehen.

Aktuelle Linux-Distributionen enthalten in der Regel OpenJDK an Stelle von Sun Java als Standard-Java-Version. Suns Version ließ sich aber bei vielen Distributionen bis 2010 noch problemlos über Partner-Repositories installieren. Da Oracle mit dem Erwerb von Sun im Sommer 2011 die Lizenzbedingungen für Java änderte, können die Distributionshersteller nicht mehr „Oracle Java“ als Installationspaket in die eigenen Paketquellen aufzunehmen. Damit ist die Situation rund um Java ein wenig unübersichtlich, zumal neben den verschiedenen Java-Varianten (Sun, Oracle, Open Source) auch verschiedene Versionen (5, 6, 7) im Umlauf sind.

Wir erklären die Unterschiede zwischen den Java-Varianten und zeigen, wie Sie den Umgang mit unterschiedlichen Versionen auf einem System praktisch handhaben können. Eine Empfehlung für eine bestimmte Version geben wir nicht; die einzige sinnvolle Empfehlung ist ganz praktischer Natur: Stellt Ihr Browser eine Java-basierende Webseite nicht korrekt dar, probieren Sie schlicht eine andere Variante. Außerdem verwenden wir im Folgenden meist die allgemeine Bezeichnung Java, auch wenn es bedeutsame Unterschiede zwischen JRE, JDK und JVM gibt. Eine kurze Erläuterung findet sich im Kasten Wortwahl. Für unsere Tests haben wir Ubuntu 11.04 und OpenSuse 12.1 verwendet.

Wortwahl

Ist allgemein von „Java“ die Rede, meint der Begriff meist das Java Runtime Environment (JRE, dt. Java-Laufzeitumgebung). SE steht übrigens für Standard Edition. Gleichwertige Bezeichnungen in diesem Zusammenhang sind JRE, Java Virtual Machine, Virtual Machine, Java VM oder JVM. Ein JRE ist stets erforderlich, um Java-Programme ausführen zu können, egal ob auf dem lokalen PC oder als Webanwendung. Wer selbst Java-Programme entwickeln möchte, braucht das so genannte JDK (Java Development Kit), das auch das JRE enthält.

Sun Java/Oracle Java

Durch den Verkauf von Sun an Oracle im Januar 2010 fielen alle wichtigen Sun-Entwicklungen, wie Java, Solaris, MySQL und OpenOffice unter die Regie von Oracle, was aber bisher weder für die Außenwahrnehmung der „Marke“ Java, noch für den Endanwender nennenswerte Konsequenzen hatte, wenn man von der Lizenzsituation bei Java absieht; nur heißt es jetzt offiziell „Oracle Java“ statt „Sun Java“.

Java stand und steht unter einer proprietären Lizenz. Allerdings war Java stets kostenlos. Sogar der Quellcode war stets einsehbar, die Lizenz erlaubt aber keine Änderungen am Java-Quellcode. In der Anfangszeit gab es im Übrigen auch keine Linux-Version von Java. Eine solche wurde erst vom Blackdown-Projekt als Portierung entwickelt. Die Blackdown-Entwickler stützten sich dabei auf die frei zugänglichen Quelltexte von JDK und JRE von Sun und fügten Patches hinzu, die Java unter Linux lauffähig machten. Das Projekt wurde im Jahr 2007 eingestellt. Sun selbst nutzte später unter anderem die Blackdown-Patches für die Entwicklung einer eigenen Linux-Variante von Java.

Leider trägt das Versionierungsschema von Java nicht gerade zu mehr Durchblick bei. So zählten sowohl Sun, als auch Blackdown die Versionsnummern bis einschließlich der Version 1.4 kontinuierlich gemeinsam hoch. Blackdown übernahm also stets die aktuelle Version von Sun und fügte die eigenen Erweiterungen hinzu. Die letzte Blackdown-Version 1.4 ist übrigens auch heute noch verfügbar [1]. Vom Einsatz älterer Java-Versionen ist allerdings dringend abzuraten. Mit der Java-Version 1.5 änderten sich die Versionsnamen: Seitdem heißt es Java 5 (Version 1.5), Java 6 und Java 7.

Sun Java 6 und Oracle Java 7

Die letzte offiziell unter dem Namen Sun entwickelte Version war Java 6. Desktop-Programm in Java 6 oder höher haben nicht mehr den altmodischen Java-Look, sondern passen sich unter Linux dem jeweiligen GTK-Theme an. Java 6 ist wie alle Java-Versionen im Java-Archiv [2] verfügbar, auch wenn Sun ausdrücklich vor dem Einsatz „älterer“ Java-Versionen warnt. Die momentan aktuelle Java-Version von Oracle trägt die Versionsnummer 7 und ist ausschließlich bei Oracle erhältlich. Oracle Java müssen Sie unter Linux manuell installieren (siehe Kasten Oracle-Java-Installation).

Oracle-Java-Installation

Wer eine offizielle Java-Version vom Oracle unter Linux verwenden möchte, kann das seit 2010 nur durch manuelles Installieren tun. Voraussetzung ist das Herunterladen des JRE [5]. Die Java-Seite ist wegen der zahlreichen Varianten nicht besonders übersichtlich. Scrollen Sie ein wenig nach unten zur Tabelle Java Platform, Standard Edition und klicken Sie dort in der rechten Spalte JRE auf Download.

Ubuntu

Auf der Folgeseite akzeptieren Sie die Lizenzbedingungen und laden die Datei jre-7u1-linux-i586.tar.gz herunter (Abbildung 1).

Abbildung 1: Wollen Sie die offizielle Oracle-Version nutzen, müssen Sie diese von der Java-Seite herunterladen.
Abbildung 1: Wollen Sie die offizielle Oracle-Version nutzen, müssen Sie diese von der Java-Seite herunterladen.

Entpacken Sie das Archiv mit einem Archivmanager in Ihrem Home-Verzeichnis und verschieben Sie das gesamte entpackte Verzeichnis (nicht die enthaltenen Dateien) mit Administratorrechten in den Ordner /usr/lib/jvm/.

Danach müssen Sie Ihr System noch mit der neuen Version bekannt machen. Öffnen Sie dazu ein Terminal-Fenster (z. B. über [Alt]+[F2] und Eingabe von konsole) und führen Sie darin die folgenden Befehle aus:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install update-java
sudo update-java

Nach dem ersten Befehl müssen Sie eventuell Ihr Passwort eingeben; das letzte Kommando öffnet ein Fenster, in dem Sie zunächst zu löschende Java-Versionen auswählen können. Wählen Sie dort keinen Eintrag aus, sondern klicken Sie direkt auf OK. Es erscheint ein ähnliches Fenster, in dem Sie nun neben anderen Versionen auch jre1.7.0_01 sehen (Abbildung 2). Wählen Sie diese aus und klicken Sie ein weiteres Mal auf OK.

Abbildung 2: Das Programm "update-java" zeigt unter Ubuntu alle verfügbaren Java-Versionen an und lässt Sie eine davon auswählen.
Abbildung 2: Das Programm „update-java“ zeigt unter Ubuntu alle verfügbaren Java-Versionen an und lässt Sie eine davon auswählen.

OpenSuse

Für die Installation unter OpenSuse verwenden Sie das RPM-Paket, das Oracle auf der Download-Seite anbietet [5], der Dateiname ist jre-7u1-linux-i586.rpm. Speichern Sie dieses Paket in Ihrem Home-Verzeichnis.

Öffnen Sie dann ein Terminal-Fenster (z. B. über [Alt]+[F2] und Eingabe von konsole) und führen Sie darin die folgenden Befehle aus:

sudo zypper install -y jre-7u1-linux-i586.rpm
alias upd="sudo /usr/sbin/update-alternatives"
upd --install /usr/bin/java java /usr/java/jre1.7.0_01/bin/java 1000
upd --install /usr/lib/browser-plugins/javaplugin.so javaplugin /usr/java/jre1.7.0_01/lib/i386/libnpjp2.so 1000
upd --config java
upd --config javaplugin

Die letzten beiden Kommandos fordern Sie auf, sich für eine von mehreren Java- bzw. Java-Plug-in-Versionen zu entscheiden. Wählen Sie dabei jeweils eine Version, die in /usr/java/jdk1.7.0_01/ liegt (Abbildung 3); um das Tippen zu erleichtern, haben wir in diesen Zeilen zunächst ein Shell-Alias namens upd definiert, das in jedem Aufruf zu sudo /usr/sbin/update-alternatives wird.

Abbildung 3: Mit "update-alternatives" wählen Sie für Java und das Plug-in jeweils die neue Oracle-Version aus.
Abbildung 3: Mit „update-alternatives“ wählen Sie für Java und das Plug-in jeweils die neue Oracle-Version aus.

Prüfen

In der Shell können Sie nun noch überprüfen, ob das Update erfolgreich war; es sollte dort bei Eingabe von java -version die Ausgabe

java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode)

erscheinen.

OpenJDK

OpenJDK ist die offizielle freie Implementierung der Java Standard Edition bzw. des JDK von Oracle. Sie steht mit Ausnahme extern gelinkter Software unter der GNU General Public License (GPL). Die offizielle, freie Implementierung von Sun Java weckte große Erwartungen bei den Nutzern. Allerdings zog sich das Freigeben der Java-Quellen lange hin, unter anderem, weil die Rechte an einigen Code-Bestandteilen nicht vollständig bei Sun lagen, so dass einige Komponenten neu entwickelt werden mussten. Die meisten Distributionen liefern OpenJDK als Standard-Java-Version mit. Allerdings haben einige Java-Programme mit dieser Version Probleme – in solchen Fällen ist Oracles Java immer einen weiteren Versuch wert.

GnuJava

GnuJava ist die Java-Implementierung des GNU-Projekts und ebenfalls in den Paketquellen der meisten Distributionen enthalten. Sie basiert – wie der GNU Compiler für Java (GCJ) – auf der Klassenbibliothek „GNU Classpath“, einer freien Implementierung der Standardklassen von Java. Zahlreiche freie Compiler und Laufzeitumgebungen wie der GCJ, die freie Java-VM Kaffe und IcedTea nutzen die unter der GNU GPL lizenzierte Bibliothek GNU Classpath.

IcedTea

IcedTea war ein von Sun unabhängiges Gemeinschaftsprojekt, das dank der Verwendung von GJC beim Erstellen einer eigenen freien OpenJDK-Version ohne proprietäre Entwicklungswerkzeuge auskam – anders als OpenJDK, bei dessen Entwicklung proprietäre Bibliotheken und Werkzeuge von Sun verwendet wurden.

EasyLinux 01/2012 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: