Ach ja, herrlich diese Welt der Lizenzen, Patente und co. Ich erspar’ euch die große Einleitung. Um es kurz auf den Punkt zu bringen:

Oracle hat Sun übernommen (ja, das ist alt), Oracle hat die Lizenzierung für Java geändert (ja, das ist auch alt). Dumm nur das jetzt Java aus den Repositories der Linux-Distributionen fliegt.

Vorbei die Zeiten, in denen man via apt-get install… und co. einfach Java installieren konnte.

Klar, es gibt Alternativen. Bei Debian ist das OpenJDK, aber diese freie Java-Implementierung bietet nicht alle Features des Originals.

Was gibt es nun für Möglichkeiten?

Also entweder, Java JRE und JDK von der Oracle-Seite herunterladen und installieren oder OpenJDK verwenden.

OpenJDK installieren

apt-get install openjdk-6-jre
apt-get install openjdk-6-jdk

Ggf. die Version anpassen.

Wie eingangs erwähnt, kann es passieren, das eine Java-Applikation nicht mit OpenJDK funktioniert. Hier ist also testen angesagt.

Vorteil ist aber, wie bei Paketen aus dem Repository üblich, das Diese automatisch mit (Sicherheits-)Updates versorgt werden.

Hinweis: Wer mittels apt-get install sun-java6-… Java installiert, bekommt mittlerweile automatisch OpenJDK.

Oracle Java installieren

Oracle Java JRE oder/und JDK von der Oracle-Seite herunterladen. Man beachte die Architektur und das verwendete Betriebssystem. Im Fall von Debian bleibt da nur die Wahl nach dem jeweiligen Binär-Paket (Endung .bin). Beachten muss man dann nur noch x86 (32-bit) oder x64 (64-bit).

Hier mal ein Beispiel für Java 6 auf einem frisch installierten Debian 6.0.3 “Squeeze” x64, das ohne grafische Oberfläche als Server verwendet wird:

mkdir /usr/bin/jvm
cd /usr/bin/jvm

Zum Zeitpunkt als dieser Artikel geschrieben wurde, war Java JDK 6 Update 30 aktuell.

wget http://download.oracle.com/otn-pub/java/jdk/6u30-b12/jdk-6u30-linux-x64.bin
chmod +x jdk-6u30-linux-x64.bin
./jdk-6u30-linux-x64.bin
ln -s jdk1.6.0_30 default-java
ln -s /usr/lib/jvm/default-java/bin/java java

Die Java-Version kann mit dem Befehl

java -version

geprüft werden.

Nachteil: Jedes (Sicherheits-)Update muss händisch eingespielt werden.