Home / Linux / HowTo: Oracle (sun) Java 7 – Installation unter Debian 6 Squeeze + Wheezy

HowTo: Oracle (sun) Java 7 – Installation unter Debian 6 Squeeze + Wheezy

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:

Letztes Update: 13.12.2014 (Java 7 Upgrade 72)
Oracle Java 8 bereits verfügbar. Aktuelle Anleitung zur Installation von Java 8 unter Debian

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:

java-download-installation-7u72

 

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/src
tar -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/jvm
mv /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/src
tar -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-oracle
ln -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]
4/5 - (15 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

43 Kommentare

  1. 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 ?

  2. 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?

  3. 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?

  4. Hallo zusammen,

    das Tutorial ist sehr gut und funktioniert wunderbar.

    Recht vielen Dank

    VG Max

  5. 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!

  6. Vielen Dank!
    Hier wird einmal richtig von A-Z beschrieben, so dass man als Anfänger alles gut nachvollziehen und lernen kann!
    Weiter so!

  7. Hervorragend und gut verständlich erklärt!
    Vielen Dank dafür!

  8. 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?

  9. 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

  10. 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

  11. 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).

  12. 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…

  13. Vielen Dank! Endlich geht es auch bei mir.
    Weiter so.
    viele Grüße!

  14. vielen Dank für den Hinweis mit dem Cookie zum runterladen von Java.

  15. Vielen Dank für die Hilfe
    schade das du keinen Flattr Button hast

  16. 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! ++

  17. Danke für das Tutorial, hat mir schon oft geholfen!

  18. 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

  19. 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

  20. 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

  21. 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

  22. Vielen Dank für die Anleitung, hat alles gut geklappt!
    Download hat gut geklappt, der Beitrag wird ständig aktualisiert.

    Schöne Grüße

  23. 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