Oracle Java SE 7 unter Debian 7 (Wheezy)

Oracle Java SE 7 unter Debian 7 (Wheezy)

Nachdem Oracle leider die Java-Lizenzierung geändert hat, werden keine weiteren Pakete mehr für Debian geschnürt. Das letzte Paket für Debian ist die Version 1.6.0_26, welche noch unter der alten Lizenz veröffentlicht wurde.

Debian bietet einen tollen Mechanismus, mit dem man verschiedene Versionen nebeneinander intallieren kann: update-alternatives.
Dieses Tool erlaubt es, für ein Programm mehrere Alternativen zu definieren und dann eine dieser Alternativen als aktuelle zu kennzeichnen. Dadurch ist es möglich, sehr schnell und problemlos zwischen zwei unterschiedlichen Versionen zu wechseln.

Ich lehne mich in diesem HowTo an den englischen Blogbeitrag von Alexander Holbreich.

Allerdings habe ich eine Anpassung gemacht, die eher dem “Debian Way” entspricht:
Alexander entpackt das JDK nach /usr/lib/jvm, was eigentlich unter Debian vom System (aptitude, etc.) selbst verwaltet wird.

Deswegen habe ich mich entsprechend dem Debian Way entschieden, das JDK nach /usr/local/lib/jvm bzw. /usr/local/lib64/jvm zu entpacken. Je nachdem, ob die i586 oder die x64 Version verwendet werden soll.

Hier nun also die

Schritt-für-Schritt-Anleitung

Auf oracle.com die aktuelle Version als tar.gz herunterladen (aktuell ist es 1.7.0_45) und nach /usr/local/lib64/jvm (ich verwende die 64-Bit-Version) entpacken:

> tar zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local/lib64/jvm

Damit das ganze später einfacher auf eine neue Version aktualisiert werden kann, muss noch ein Symlink angelegt werden, der dann ggf. auf die neue Version umgebogen wird:

> ln -s /usr/local/lib64/jvm/jdk1.7.0_45 /usr/local/lib64/jvm/jdk/1.7

Auf dem 64-Bit-System kann nun noch ein Symlink in dem 32-Bit-Ordner auf die entpackte 64-Bit-Version erzeugt werden:

> ln -s /usr/local/lib64/jvm/jdk1.7 /usr/local/lib/jvm/jdk1.7

Anschließend müssen nun die Alternativen ergänzt werden. Das geschieht mit dem Befehl update-alternatives:

> update-alternatives --install /usr/bin/java java /usr/local/lib/jvm/jdk1.7/jre/bin/java 64
> update-alternatives --install /usr/bin/javac javac /usr/local/lib/jvm/jdk1.7/bin/javac 64

64 ist eine frei wählbare Priorität. Die höchste Priorität wird automatisch vom System verwendet.

Mit dem Befehl update-alternatives –config java bzw. update-alternatives –config javac können die Alternativen aufgelistet und eine festgelegt werden:

> update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).  
Selection    Path                                          Priority   Status
------------------------------------------------------------
 0            /usr/local/lib/jvm/jdk-7-oracle/jre/bin/java   64        auto mode  
 1            /usr/lib/jvm/java-6-sun/jre/bin/java           63        manual mode
*2            /usr/local/lib/jvm/jdk-7-oracle/jre/bin/java   64        manual mode
Press enter to keep the current choice[*], or type selection number: _

Da 64 größer als 63 ist, wird das neue JDK für den auto mode selektiert. Mit der Auswahl von 2 wird die gerade installierte Version aktiviert.

Bei einem Update reicht es, die neue Version zu entpackten und den Symlink in /usr/local/lib64/jvm auf die neue Version umzubiegen.

Viel Spaß mit dem aktuellen JDK!

This entry was posted in Java, Linux, Software and tagged , , . Bookmark the permalink.