Da Oracle mal wieder glaubt einen auf „Wichtig“ machen zu müssen und die Lizenzbestimmungen ständig ändert gibt es für Java 7 auch keine non-free Pakete in den Standard Debian Mirrors mehr. Eine Installation von Oracle (Sun) Java 7 unter Debian Squeeze und Wheezy wird daher manuell durchgeführt:
1. Download des richtigen Java 7 Packages (JRE / Server JRE / JDK)
Im ersten Schritt müssen wir das passende Java 7 Package (JRE / Server JRE / JDK) von der Oracle Webseite downloaden. Dazu ist es wichtig ob wir ein 64bit oder ein 32bit basiertes Debian benutzen. Mit dem Befehl „uname -m“ könnt ihr herausfinden welche Version installiert ist. Ich gehe in meiner Anleitung von einer 64bit Version aus, da es mittlerweile doch die gängigste Variante sein sollte.
Downloadlink: Download der JRE / Server JRE / JDK Version für Linux (tar.gz) 64bit:
Leider will Oracle direkt vor dem Download die Lizenz bestätigt haben wodurch wir leider nicht direkt über wget downloaden können. Somit bleibt es uns nicht erspart den Download über einen Browser zu starten.
Die downgeloadete Datei (jre-7u72-linux-x64.tar.gz) wird anschließend auf den zu installierenden Server ins Verzeichnis /usr/src kopiert.
Update 09.09.2013: Durch den Tipp von „pfender“ in den Kommentaren, kann das Java Paket auch via wget heruntergeladen werden. Das Zauberwort heisst hier „Cookie“.
Java 7 auf der Command Line Shell via wget downloaden
Download der JDK 64bit Variante 7.72:
[bash]wget –no-cookies –no-check-certificate –header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u72-b14/jdk-7u72-linux-x64.tar.gz"[/bash]Download der JDK 32bit Variante 7.72:
[bash]wget –no-cookies –no-check-certificate –header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u72-b14/jdk-7u72-linux-i586.tar.gz"[/bash]Download der JRE 64bit Variante 7.72:
[bash]wget –no-cookies –no-check-certificate –header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u72-b14/jre-7u72-linux-x64.tar.gz"[/bash]Download der JRE 32bit Variante 7.72:
[bash]wget –no-cookies –no-check-certificate –header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u72-b14/jre-7u72-linux-i586.tar.gz"[/bash]Java 7 Package entpacken und installieren
[bash]cd /usr/srctar -xzvf jre-7u72-linux-x64.tar.gz[/bash]
Wir schieben das Java Verzeichnis nun an seinen richtigen Platz: /usr/lib/jvm/ (bei 32bit nach /usr/lib/jvm)
[bash]mkdir /usr/lib/jvmmv /usr/src/jre1.7.0_72 /usr/lib/jvm/[/bash]
…und setzen den Symlink /usr/lib/java-7-oracle auf die aktuellste Version. Dieser Vorgang erleichtert später ein Upgrade auf eine neue Java Version.
[bash]ln -s /usr/lib/jvm/jre1.7.0_72/ /usr/lib/jvm/java-7-oracle[/bash]Abschließend geben wir unserem Debian die Anweisung Java 7 zu verwenden.
[bash]update-alternatives –install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-oracle/bin/java" 1[/bash]Java 7 Installation testen
Mit folgendem Befehl wird die installierte Java Version überprüft:
[bash]java -version[/bash]Output:
[bash]java version "1.7.0_72"Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)[/bash] [sam id=“2″ codes=“true“]
Java 7 Upgrade (minor Release)
Da Java leider ziemlich viele Sicherheitslücken beinhaltet empfiehlt es sich die Version stets aktuell zu halten und Aktualisierungen der Java Installationen durchzuführen. Ein Upgrade auf die nächste Version ist, dank der einfachen Installation mit der Hilfe des Symlinks, überhaupt kein Problem und sehr schnell durchzuführen.
Dazu wird die neue Java Version heruntergeladen und wie bei der Installation in das Verzeichnis /usr/src entpackt.
[bash]cd /usr/srctar -xzvf jre-7u72-linux-x64.tar.gz[/bash]
Das Java Verzeichnis wird nun, wie bei der älteren Java Installation an seinen richtigen Platz geschoben: /usr/lib/jvm/
[bash]mv /usr/src/jre1.7.0_72 /usr/lib/jvm/[/bash]Das /usr/lib/jvm Verzeichnis könnte nun ähnlich wie hier aussehen (ls -la):
[bash]java-7-oracle -> /usr/lib/jvm/jre1.7.0_25/jre1.7.0_21
jre1.7.0_25
jre1.7.0_72[/bash]
Es sind nun also mindestens zwei Java Installation vorhanden (in meinem Beispiel sogar 3). java-7-oracle wird als Symbolischer Link auf jre1.7.0_25 dargestellt. Wird der Symlink nun auf die neue Version gelegt, so wird auch die neue Java Version verwendet:
[bash]rm /usr/lib/jvm/java-7-oracleln -s /usr/lib/jvm/jre1.7.0_72/ /usr/lib/jvm/java-7-oracle[/bash]
Ein „java -version“ sollte dann die aktuellste Java Version ausgeben.
Upgrade von Java 6 auf Java 7
Falls bereits eine ältere Java Version (zB:. java-6-sun) installiert ist, kann mit folgendem Befehl die Version geändert werden:
[bash]update-alternatives –config java[/bash]Output:
[bash]There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status
————————————————————
0 /usr/lib/jvm/java-6-sun/jre/bin/java 63 auto mode
1 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
* 2 /usr/lib/jvm/java-7-oracle/bin/java 1 manual mode
Press enter to keep the current choice[*], or type selection number: [/bash]
Umgebungsvariable $JAVA_HOME für Java 7 setzen
Viele Anwendungen setzen voraus, dass auch die Umgebungsvariable JAVA_HOME (environment variable) gesetzt wird. Dazu editieren wir die File /etc/profile und ergänzen diese…
[bash]vi /etc/profile[/bash]…um folgende 2 Zeilen:
[bash]JAVA_HOME="/usr/lib/jvm/java-7-oracle"export JAVA_HOME[/bash]
Damit die Umgebungsvariable aktiviert wird, könnt ihr das System rebooten oder folgendes Kommando ausführen:
[bash]source /etc/profile[/bash]Um zu überprüfen, ob die Variable auch tatsächlich gesetzt wurde verwenden wir diesen Befehl
[bash]echo $JAVA_HOME[/bash]Die Ausgabe sollte dann wie folgt aussehen
[bash]/usr/lib/jvm/java-7-oracle[/bash]
habe kein standard Browser bei Java Anwendungen.
Alle anderen Anwendungen z.B. Icedove, pidgin u.s.w öffnen links korrekt im standard Browser
Wo kann ich das für Java definieren …. vielleicht irgendwas mit „export……“ ?
a.) mit meinem Standard user – JAVA APP unter Fluxbox funktioniert NICHT
b.) Mit neuen user – JAVA APP unter Fluxbox FUNKTIONIERTS !
ich denke das das ist irgend eine UserSpace umgebungs Variable, aber welche ?
Hi Ted,
oder möglicherweise ein Cache Problem?
Was wird denn genau für ein Browser geöffnet?
Gruß
Patrick
Hoi,egal welches Java APP, ich bekomm Meldung wie „error attempting to launch web browswer: Failed to show URI:http://…“ , hast du Idee welches cache?
Hallo Ted,
danke für das gute Tutorial,
Ich habe das ganze für 32Bit mit der i586 version von Sun/Oracle versucht. Deshalb auch /usr/lib anstatt /usr/lib64 benutzt. Ich bekomme nach den Schritten immer folgende Fehlermeldung:
user@computer:/etc/alternatives$ java -version
-bash: /usr/bin/java: Kann die Datei nicht ausführen.
user@computer:/etc/alternatives$
Alle Dateien und Links zu /usr/lib/jvm/jre1.7.0_07/bin/java haben x-Recht. Was kann ich tun?
Hallo zusammen,
das Tutorial ist sehr gut und funktioniert wunderbar.
Recht vielen Dank
VG Max
Eine super Anleitung!
Aber: Man kann es – entgegen deiner Aussage – auch mit wget herunterladen – einfach die Präfix –no-check-certificate anhängen:
wget [link] –no-check-certificate
Grüße!
Hallo Pascale,
Danke für den Tipp, aber ich frage mich welchen Link du zum Download via wget verwendest?
via: http://download.oracle.com/otn-pub/java/jdk/7u9-b05/jre-7u9-linux-x64.tar.gz funktionierts leider nicht
Gruß
Patrick
Das funktioniert so tatsächlich nicht, aber das sorgt dafür, dass das Zertifikat nicht serverseitig überprüft wird. Das Problem bei der Oracle-Seite ist, dass man es ohne die Akzeptierung der Lizenzen nicht herunterladen kann – deshalb funktioniert es auch sowieso nicht mit wget.
Man kann es so wie ich es geschrieben habe zwar herunterladen, aber die Datei ist dann beschädigt – bringt also auch nichts.
Verzeihung!
Es ist sehr gut möglich die Date per wget zu holen. Die betreffende Datei downloaden, dann den Downloadlink kopieren und mit wget Datei holen lassen. Dann das Dateiformat anpassen/umbennen und schon ist es vollständig und unbeschädigt runtergeladen.
Schaut mal hier.. wenn man die richtigen Cookies einfügt klappts per wget .. http://ivan-site.com/2012/05/download-oracle-java-jre-jdk-using-a-script/
Vielen Dank für den Hinweis! Habe den Beitrag sofort ergänzt!!!
Gruß
Patrick
Vielen Dank!
Hier wird einmal richtig von A-Z beschrieben, so dass man als Anfänger alles gut nachvollziehen und lernen kann!
Weiter so!
Hervorragend und gut verständlich erklärt!
Vielen Dank dafür!
Hallo, ich scheitere jedesmal bei der Versionsprüfung.
bei „java -version“ kommt immer „-bash: /usr/bin/java: No such file or directory“. ich ab das Tutorial jetz bestimmt 5mal durchgelesen und befolgt aber immer kommt der selbe Fehler. Weiß denn keiner eine Lösung?
Herzlichen Dank für diese tolle Seite!
Die Infos sind umfassend, stimmig und treffen genau meine Bedürfnisse.
Außerdem ist das Design klasse!
Weiter so!
Vielen Dank und viele Grüße
Daniel
Hallo,
super Tutorial, vielen Dank dafür! kleiner Hinweis für alle bei denen nach dem Tutorial beim Test mit java -version eine falsche Version erscheint: das kann daran liegen dass man eventuell mehere java versionen installiert hat, helfen tut hier der Befehl:
update-alternatives –config java
Grüße
Doro
Hallo Doro,
genauso wie es auch in der Anleitung steht 😉
Gruß
Patrick
stimmt 🙂
ich hatte nur den ersten part, also die Installation des major release gelesen und hier bei java-version diesen Befehl benötigt, hätte ich mal weiter gelesen 🙂
Grüße
Doro
Wäre es möglich, die aktuellste JRE/JDK zu bennen? denn das 7u15 ist schon ziemlich veraltet :).
Ansonsten … sehr gutes HowTo, sollte man mal in diversen Foren pinnen 🙂 *thumbsup*
Hallo Chaos,
den Artikel immer auf den aktuellsten Stand zu halten ist leider sehr viel Arbeit. Oracle gibt mittlerweile fast wöchentlich ein Update heraus. Die Guide kann ich leider dann nicht immer gleich anpassen.
Aber habe gerade auf die Version 7u21 upgedated.
Gruß
Patrick
Danke dir :).
Naja, muss ja nun auch nicht jede Woche sein, aber nach so 14-21 Tagen, sprich einmal im Monat, kann man ja mal nen Blick riskieren, da alles andere ja total übertrieben wäre ^^.
Gruß
Chaos
Huhu Patrick,
ich hab nen dist-upgrade auf Wheezy gemacht (eigentlich versehentlich) und nun ist der /lib64 wech und java nur in /lib als x86_64 ist ja nen Ding der Unmöglichkeit.
Wurde ich jetzt etwa auf nen 32bit system runtergeschossen? Immerhon läuft mein TS3 ja als 64bit Version ohne „Wenn und Aber“.
Hoffentlich kannst Du mir da behilflich sein, damit ich Java wieder zum laufen bekomme 🙂
Hallo Chaos,
wie sieht denn deine /usr/lib* Struktur nun aus?
Normalerweise ist unter 64 bit Systemen /usr/lib64 nur ein Symlink auf /usr/lib.
Also so viel sollte hier nicht falsch gelaufen sein 😉
Hast du vielleicht die Multiarch Funktion aktiviert?
Gruß
Patrick
Nicht, dass ich wüsste.
Einfach nur apt-get update && apt-get upgrade gemacht, danach noch apt-get dist-upgrade und schwupp war wheezy drauf.
Der Symlink fehlt leider in /usr/ aber dafür ist /lib und /lib64 da (o0).
Anleitung funktioniert leider nicht 🙁
root@srv:/usr/lib64/jvm/java-7-oracle/bin# uname -m
i686
…also 64bit Version…
Alles nach Anleitung installiert, dann Versionscheck
root@srv:/usr/lib64/jvm/java-7-oracle/bin# ./java -version
-bash: ./java: cannot execute binary file
root@srv:/usr/lib64/jvm/java-7-oracle/bin# java -version
-bash: /usr/bin/java: cannot execute binary file
root@srv:/usr/lib64/jvm/java-7-oracle/bin#
Auch die direkte Ausführung scheitert…
Hallo Willi,
i686 sagt eindeutig aus, dass es sich um ein 64bit Linux handelt.
http://www.sysadminslife.com/linux/quicktipp-ist-mein-linux-kernelcpu-32-oder-64-bit/
Deshalb auch die Fehlermeldung „cannot execute binary file“
Gruß
Patrick
Vielen Dank! Endlich geht es auch bei mir.
Weiter so.
viele Grüße!
vielen Dank für den Hinweis mit dem Cookie zum runterladen von Java.
Vielen Dank für die Hilfe
schade das du keinen Flattr Button hast
Hi,super Anleitung die auch gut funktioniert unter Debian 6 und 7!
Man sollte wenn man bereits OpenJDK hat, dieses apt-get removen, da sonst das update-alternatives nicht funktioniert.
Bei dem einen wget ist hinten ein “ zuviel! ++
Danke für das Tutorial, hat mir schon oft geholfen!
Danke fuer die klasse Anleitung!
Habe heute Java 7 unter Debian 7 auf einem dedizierten Root Server mit Hilfe dieser Anleitung erfolgreich installiert.
Was mich aber noch interessiert: Woher bekommt man den downloadlink fuer die aktuelle Java Version?
Hallo tgs,
ich habe die Downloadlinks wieder auf die neueste Version aktualisiert!
Gruß
Patrick
Vielen Dank fuer die schnelle Reaktion!
Der Server ist nun auch schon aktualisiert… und ich verwende gerne die hier veroeffentlichen Links.
Trotzdem frage ich mich, woher man diese bekommt?
Aber, solange ich hier fuendig werde, ist es mir auch recht.
Gruesse
Thomas
Die Links bekommst du über den Download per Webbrowser raus 😉 Einfach Rechtsklick und Link URL kopieren.
Gruß
Patrick
Hallo Patrick,
bei mir ergibt das:
„http://javadl.sun.com/webapps/download/AutoDL?BundleId=81811“
Offensichlich stelle ich mich wohl etwas bloed an :-(.
VG
Thomas
Mir ist aufgefallen das es zwischen download-datei und der zu entpackenden datei einen unterschied gibt :
Download : jre-7u45-linux-x64.tar.gz
Entpacken : jre-7u45-linux-x64.gz
Bei mir hat das logischerweise so nicht funktioniert 😉
Ansonsten top tutorial, habe mir einen bashscript daraus erstellt um in der zukunft alles per double-click zu machen 😀
Mein System : Debian 7 wheezy
Hmmm…also ganz oben ist der kleine unterschied immernoch(fehlendes „tar“).
Java 7 auf der Command Line via wget downloaden :
…/jre-7u45-linux-x64.tar.gz“
Java 7 Package entpacken und installieren :
cd /usr/src
tar -xzvf jre-7u45-linux-x64.???.gz
Wieso mein erstes „Reply“ gelöscht wurde frag ich jetz nicht 😉
Oder ist das nur bei mir so ?
Hi Liquid,
Danke für den Hinweis. Hab das gleich angepasst.
Nene Kommentar wurde natürlich nicht gelöscht, habs im Weihnachtsstress nur zum Freischalten vergessen. 😉
Gruß und einen Guten Rutsch!
Patrick
Vielen Dank für die Anleitung, hat alles super geklappt!
Bin gerade dabei, das Einrichten Virtueller Maschinen mit Ansible zu automatisieren. Hier ist der Link zu meinem Ansible Playbook:
https://gist.github.com/gbirke/8314571
Vielen Dank für die Anleitung, hat alles gut geklappt!
Download hat gut geklappt, der Beitrag wird ständig aktualisiert.
Schöne Grüße
Hallo,
für den Download per wget wird ein weiterer Cookie benötigt.
Der Befehl sieht nun folgendermaßen aus:
wget –no-cookies –no-check-certificate –header „Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie“ „http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jre-8u25-linux-x64.tar.gz“
Gruß
Dawner