Das Herunterladen von Java JDK unter Linux über wget wird stattdessen auf der Lizenzseite angezeigt

615

Wenn ich versuche, Java von Oracle herunterzuladen, lade ich stattdessen eine Seite herunter, auf der mir mitgeteilt wird, dass ich den OTN-Lizenzbedingungen zustimmen muss.

Es tut uns leid!

Um Produkte von Oracle Technology Network herunterladen zu können, müssen Sie den OTN-Lizenzbedingungen zustimmen.

Sei sicher, dass...

  • Ihr Browser hat "Cookies" und JavaScript aktiviert.
  • Sie haben für das Produkt, das Sie herunterladen möchten, auf "Lizenz akzeptieren" geklickt.
  • Sie versuchen den Download innerhalb von 30 Minuten nach Annahme der Lizenz.

Wie kann ich Java herunterladen und installieren?

der Barkeeper
quelle
Diese Frage ist themenbezogen, da sie sich darauf bezieht, wie Entwickler Entwicklungskits installieren. Wiedereröffnung aus diesem Grund.
George Stocker

Antworten:

1657

AKTUALISIERT FÜR Oracle JDK 11

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/11+28/55eed80b163941c8885ad9298e6d786a/jdk-11_linux-x64_bin.tar.gz

AKTUALISIERT FÜR JDK 10.0.2

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz

AKTUALISIERT FÜR JDK 10.0.1

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz

AKTUALISIERT FÜR JDK 9 Sie können es jetzt direkt von java.net herunterladen, ohne einen Header zu senden

wget http://download.java.net/java/GA/jdk9/9/binaries/jdk-9+181_linux-x64_bin.tar.gz

AKTUALISIERT FÜR JDK 8u191

TAR GZ:

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3a%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk8-downloads-2133151.html; oraclelicense=accept-securebackup-cookie;" "https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz"

Drehzahl:

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3a%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk8-downloads-2133151.html; oraclelicense=accept-securebackup-cookie;" "https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.rpm"

AKTUALISIERT FÜR JDK 8u131

Drehzahl:

  wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

TAR GZ:

 wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

Drehzahl mit Curl:

 curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm > jdk-8u112-linux-x64.rpm

In allen oben genannten Fällen ersetzen Sie 'x64' durch 'i586', um den 32-Bit-Build herunterzuladen.

  • -j -> Junk-Cookies
  • -k -> Zertifikate ignorieren
  • -L -> Weiterleitungen folgen
  • -H [arg] -> Header

curlkann anstelle von verwendet werden wget.

UPDATE FÜR JDK 7u79

TAR GZ:

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz

Drehzahl mit Curl:

curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm > jdk-7u79-linux-x64.rpm

Stellen Sie erneut sicher, dass Sie die richtige URL für die Version angeben, die Sie herunterladen. Die URL finden Sie hier: Oracle JDK-Download-Site

URSPRÜNGLICHE ANTWORT VOM 9. Juni 2012

Wenn Sie das Oracle JDK über die Befehlszeile herunterladen möchten wget, gibt es eine Problemumgehung. Führen Sie den wgetBefehl wie folgt aus:

wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz"

Stellen Sie sicher, dass Sie den Download-Link durch den richtigen für die Version ersetzen, die Sie herunterladen.

Eric Kamara
quelle
6
(Vielleicht reicht dieser zillionste Repost endlich aus.) Ein einfaches --header "Cookie: oraclelicense=accept-securebackup-cookie"(oder --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]") scheint gut zu funktionieren. Könnten Sie das bestätigen?
Det
2
Update für das neue Java 8 : wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8-b132/jdk-8-linux-x64.tar.gz. Die --no-Cookies sind redundant und das --no-check-Zertifikat ist nur bei Wget 1.12 und älter erforderlich , bei denen die SAN-Unterstützung fehlt (hauptsächlich RHEL / CentOS 6.x). Die cURL- Version ist:curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jdk/8-b132/jdk-8-linux-x64.tar.gz
Det
3
Ich habe den neuen 121 verson mit der URL download.oracle.com/otn-pub/java/jdk/8u121-b13/… ausprobiert, aber es scheint nicht zu funktionieren. jeder Gedanke?
Nam Nguyen
3
Haben Sie den FEHLER 404: Mit JDK 11 nicht gefunden, möglicherweise falsche URL?
Tien Dung Tran
2
AKTUALISIERT FÜR Oracle JDK 11-Lösung funktioniert nicht mehr
Bomba
247

( Irani hat meine Antwort aktualisiert, aber hier ist, um alles zu klären. )

Bearbeiten: Aktualisiert für Java 11.0.1 , veröffentlicht am 16. Oktober 2018

Wget

wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz

JRE 8u191 (keine Cookie-Flags): http://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c
Weitere Informationen finden Sie in den Downloads unter oracle.com und java.com .

  • -c / --continue

    Ermöglicht die Fortsetzung eines unvollendeten Downloads.

  • --header "Cookie: oraclelicense=accept-securebackup-cookie"

    Seit dem 15. März 2014 wird dieses Cookie dem Benutzer nach dem Akzeptieren der Lizenzvereinbarung zur Verfügung gestellt und ist für den Zugriff auf die Java-Pakete in download.oracle.com erforderlich . Bei der vorherigen (und ersten) Implementierung am 27. März 2012 wurde das Cookie verwendet gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. Beide Fälle bleiben der Öffentlichkeit unangekündigt.

    Der Wert muss nicht " accept-securebackup-cookie" sein.

Erforderlich für Wget <1.13

  • --no-check-certificate

    Nur mit den erforderlichen wget 1.12 und früher , die sie nicht unterstützen Subject Alternative Name (SAN) Zertifikate (vor allem Red Hat Enterprise Linux 6.x und Freunde, wie CentOS). 1.13 wurde veröffentlicht im August 2011.

    Verwenden Sie zum Anzeigen der aktuellen Version: wget --version | head -1

Nicht benötigt

  • --no-cookies

    Die Kombination --no-cookies --header "Cookie: name=value"wird als " offizielle " Cookie-Unterstützung bezeichnet, ist hier jedoch nicht unbedingt erforderlich.

cURL

curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz
  • -L / --location

    Erforderlich, damit cURL durch alle Spiegel umleitet.

  • -C / --continue-at -

    Siehe oben. cURL benötigt -am Ende den Bindestrich ( ).

  • -b / --cookie "oraclelicense=accept-securebackup-cookie"

    Gleich wie -H / --header "Cookie: ...", akzeptiert aber auch Dateien.

  • -O

    Erforderlich, damit cURL Dateien speichert ( weitere Unterschiede finden Sie im Autorenvergleich ).

Det
quelle
2
"vorhergehender Bindestrich" sollte "Bindestrich nach jeder Form der Option" sein, dies ist jedoch eine hervorragende Zusammenfassung.
Alex Dupuy
1
Nun, ich habe es in " cURL erfordert am -Ende den Bindestrich ( ) " geändert . Das sollte klar genug sein, wenn man bedenkt, wie die andere Form von flagbereits im Befehl angezeigt wird.
Det
1
Ich habe die neue 121-Version mit der URL download.oracle.com/otn-pub/java/jdk/8u121-b13/… ausprobiert, aber es scheint nicht zu funktionieren. jeder Gedanke?
Nam Nguyen
1
Es scheint nicht für die alte Version zu funktionieren. Ich kann 8u121 nicht herunterladen. Wahrscheinlich wegen Downloading these releases requires an oracle.com account. Irgendeine Problemumgehung?
ALex_hha
1
Wir verwenden Docker, deshalb müssen wir eine bestimmte Version von Java verwenden. Ja, ich kann die Datei auf einem FTP finden, aber ich habe gerade erwähnt, dass Sie von jetzt an keine frühere Version von der Site ohne deren Konto herunterladen können
ALex_hha
35

Das Herunterladen von Java über die Befehlszeile war schon immer mühsam. Was ich kürzlich getan habe, ist, FireFox zu verwenden (andere Browser funktionieren möglicherweise), um einen Download auf meinem Laptop zu starten, ihn anzuhalten (innerhalb der Download-Fenster) und den Menüpunkt "Download-Link kopieren" des Kontextmenüs zu verwenden, das für angezeigt wird Datei wird heruntergeladen. Diese URL kann dann auf der Linux-Box verwendet werden, um dieselbe Datei herunterzuladen. Ich gehe davon aus, dass die URL nur eine kurze Lebensdauer hat. Hässlich, aber allgemein erfolgreich.

Andrew Gilmartin
quelle
Ja .. das funktioniert. Nett. Ich hatte meine URL wie download.oracle.com/otn-pub/java/jdk/7u9-b05/…
Mukus
3
Dies ist eine interessante Angelegenheit, beantwortet aber die Frage nicht. Das Klicken auf FireFox ist nicht kompatibel mit "Download automatisieren".
Stéphane Gourichon
Nicht so lästig (Übersetzung: unmöglich) wie in meinen Browsern (Plural) heute. Etwa 10 bis 20% des Weges würde der Oracle-Server die Verbindung trennen und mir einen abgeschnittenen Download hinterlassen. Das CLI-Tool versucht es zumindest dort, wo es aufgehört hat, und schließlich wird einer der Läufe ohne Zeitüberschreitung / Ablehnung abgeschlossen.
Roboprog
Ausgezeichnet! Der Abfrageparameter AuthParamhat etwas mit der Oracle-Überprüfung zu tun, ob der Benutzer der Lizenz zugestimmt hat oder nicht.
Asgs
einzige Lösung, die heute für mich funktioniert. Alle oben genannten Wget-Tricks mit dem Parameter "Cookie akzeptieren" haben nicht funktioniert.
Saad Benbouzid
23

Aktualisiert für JDK 8u171 RPM

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.rpm

Veraltete Links unten

Aktualisiert für JDK 8u161 RPM

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm

Aktualisiert für JDK 8u152 RPM

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm

Aktualisiert für JDK 8u144 RPM

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm

Aktualisiert für JDK 8u131 RPM

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

Aktualisiert für JDK 8u121 RPM

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.rpm

jdrews
quelle
2
Dieses Absolut hat mir geholfen. Um das tar.gz zu verwenden, musste ich einfach .rpm in .tar.gz umbenennen
Yoraco Gonzales
19

Ich weiß, dass Oracle alles möglich gemacht hat, um die Java Runtime und das Java SDK so schwierig wie möglich zu gestalten.

Hier sind einige Anleitungen für Kommandozeilenliebhaber.

Für Debian-ähnliche Systeme (getestet auf DebianSqueeze und Ubuntu12.x +)

su -
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
apt-get update
apt-get install --yes oracle-java7-installer
exit

Hinweis: Wenn Sie einen besseren oder einfacheren Weg kennen, einen Kommentar hinzuzufügen, werde ich den Leitfaden aktualisieren.

Sorin
quelle
2
Ab dem 02.11.2013 sind andere Methoden mit anderen Versionen nicht einfach anzupassen. Diese Methode funktioniert unabhängig von der aktuellen Version und kann mit apt-get-Optionen wie "--yes" automatisiert / skriptgesteuert / unbeaufsichtigt ausgeführt werden.
Stéphane Gourichon
Versuchte diese Methode mit oracle-java8-installer mit --yes, --assume-yes, --force-yesOptionen, aber bei jeder Installation möchte ich die Lizenzvereinbarung mit enter-key akzeptieren.
Drey
9

Java SE Development Kit 12.0.2

TAR.GZ

wget  --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/12.0.2+10/e482c34c86bd4bf8b56c0b35558996b9/jdk-12.0.2_linux-x64_bin.tar.gz
Juan Pablo G.
quelle
warum --no-check-certificate? Ohne diesen Schalter funktioniert es einwandfrei. Aus Sicherheitsgründen sollte es nicht verwendet werden, insbesondere wenn es veraltet ist.
Tymik
6

Oracle hat ein Präventions-Cookie auf den Download-Link gesetzt, um Sie zu zwingen, den Bedingungen zuzustimmen, obwohl in der Lizenzvereinbarung zur Verwendung von Java eindeutig festgelegt ist, dass Sie der Lizenz lediglich durch die Verwendung von Java "zustimmen".

Oracle möchte, dass Sie es mit einer Vereinbarung herunterladen. Danach kann dieses Skript nicht mehr für Ihr spezifisches Linux geändert werden

#!/bin/bash
#Author: Yucca Nel http://thejarbar.org
#Will restart system
#Modify these variables as needed...
tempWork=/tmp/work
locBin=/usr/local/bin
javaUsrLib=/usr/lib/jvm

sudo mkdir -p $javaUsrLib
mkdir -p $tempWork
cd $tempWork

#Extract the download
tar -zxvf $downloadDir/jdk*tar.gz

#Move it to where it can be found...

sudo mv -f $tempWork/jdk* $javaUsrLib/

sudo ln -f -s $javaUsrLib/jdk1/bin/* /usr/bin/

#Update this line to reflect versions of JDK...
export JAVA_HOME="$javaUsrLib/jdk1.7.0_03"
#Extract the download
tar -zxvf $tempWork/*

#Move it to where it can be found...

sudo mv -f $tempWork/jdk1* $javaUsrLib/

sudo ln -f -s $javaUsrLib/jdk1*/bin/* /usr/bin/
sudo rm -rf $tempWork
#Update this line to reflect newer versions of JDK...
export JAVA_HOME="$javaUsrLib/jdk1.7.0_03"

if ! grep "JAVA_HOME=$javaUsrLib/jdk1.7.0_03" /etc/environment
then
    echo "JAVA_HOME=$javaUsrLib/jdk1.7.0_03"| sudo tee -a /etc/environment
fi


exit 0
der Barkeeper
quelle
1
Bei dieser Antwort wird davon ausgegangen, dass Sie Linux verwenden und es auf eine nicht standardmäßige Weise / an einem nicht standardmäßigen Ort und an einer Reihe anderer Dinge installieren möchten. Eine bessere Antwort wäre "Befolgen Sie einfach die Installationsanweisungen auf der Download-Website" ... es sei denn, Sie verwenden Ubuntu. In diesem Fall gibt es andere Möglichkeiten.
Stephen C
8
Und wie ist es seltsam, dass die Antwort Linux voraussetzt, wenn der Fragentitel Linux enthält? Das Zepter ist keine Einheitsgröße, da Linux selbst nicht so ist. Da dies meine eigene Antwort auf meine eigene Frage ist, habe ich sie getestet und es hat bei mir funktioniert.
Thejartender
6

Für diejenigen, die auch JCE8 benötigen, können Sie das auch herunterladen.

curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip

Oder

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
Cole Stanfield
quelle
5

Dies funktioniert für das JDK 6, Sie müssen nur die Download-URL durch die neueste Version ersetzen.

wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk6-downloads-1637591.html;" http://download.oracle.com/otn-pub/java/jdk/6u33-b03/jdk-6u33-linux-x64.bin
Hiro2k
quelle
Dies funktioniert, aber ich konnte 6u48 nicht wählen, weil der Teil, in dem Sie 6u33-b03 haben.
Jacob Phillips
Am 2013-11-02 konnte dies nicht funktionieren. Lädt anstelle der Datei eine HTML-Registrierungsseite herunter.
Stéphane Gourichon
5

Dieser Befehl kann das Paket jdk8 tgz jetzt (06.09.2018) herunterladen. Viel Glück!

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/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
Kai
quelle
Ich habe versucht, andere Befehle, aber nichts hat funktioniert, aber dieser hat reibungslos funktioniert (läuft am 20. September 2019).
Ein weiterer Codierer
4

Anstatt für jede neue Java-Version einen neuen Link zu verwenden oder vorhandene Skripte zu ändern, suchte ich nach einer allgemeineren Möglichkeit, den Download der erforderlichen Java-Pakete und die spätere Installation über zu automatisieren yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm.

Ich habe einen irgendwie trivialen Ansatz verwendet, der der manuellen / Benutzeraktion ähnelt, um das Paket zu finden und herunterzuladen. Ich bin auch ziemlich sicher , dass man einen eleganteren Weg finden , es zu tun , indem sie mit anderen Werkzeugen wie egrep, awk, etc .., so lassen Sie es hier als Beispiel:

#!/bin/bash

### Proxy settings
# If there is a company proxy 

PROXY="my.proxy.local:8080"
PROXY_TYPE="--proxy-ntlm" # or leave empty with ""
USER="user"
PASS='pass'

### Find out the links to JRE and JDK 
# To do so, got to the page http://www.oracle.com/technetwork/java/javase/downloads/

BASE_URL="technetwork/java/javase/downloads"

# Put the whole page into a single string/line

BASE_URL_OUTPUT="$(curl -s -k ${PROXY_TYPE} -x "http://${USER}:${PASS}@${PROXY}" -L0 http://www.oracle.com/${BASE_URL}/)"

# Define the environments to download 

JAVA_ENVIRONMENTS=("JRE" "JDK") # ! yet "SERVER-JRE"

for JAVA_ENVIRONMENT in "${JAVA_ENVIRONMENTS[@]}"
do

echo
echo "JAVA_ENVIRONMENT="$JAVA_ENVIRONMENT
echo

for (( JAVA_BASE_VERSION = 8; JAVA_BASE_VERSION <= 10; JAVA_BASE_VERSION += 2 ))  
do

echo "JAVA_BASE_VERSION="$JAVA_BASE_VERSION

### "Read the page"
# and follow the links for the package interested in 

DOWNLOAD_SITE="$(echo $BASE_URL_OUTPUT | grep -m 1 -io "${JAVA_ENVIRONMENT}${JAVA_BASE_VERSION}-downloads-[0-9]*.html" -- | tail -1)"
echo "DOWNLOAD_SITE="$DOWNLOAD_SITE

### Gather the necessary download links
# To do so, following the link to the download site
# reading and accept the license 
# 
# ... the greedy regular expression is to address the different syntax of the links
# and already prepared for OR .gz files 

DOWNLOAD_LINK_OUTPUT="$(curl -s -k ${PROXY_TYPE} -x "http://${USER}:${PASS}@${PROXY}" -L -j -H "Cookie: oraclelicense=accept-securebackup-cookie" http://www.oracle.com/${BASE_URL}/${DOWNLOAD_SITE} |  grep -io "filepath.*${JAVA_ENVIRONMENT}-[${JAVA_BASE_VERSION}].*linux[-_]x64[._].*\(rpm\)" -- | cut -d '"' -f 3 | tail -1)"

# and echo out the link

echo "DOWNLOAD_LINK_OUTPUT="$DOWNLOAD_LINK_OUTPUT

done

done

Da die Download-Links jetzt verfügbar sind, kann man mit wgetoder fortfahren curl.

U880D
quelle
3

All dies scheint davon auszugehen, dass Sie die URL für das neueste Java-RPM kennen ...

Oracle bietet dauerhafte Links zu den neuesten Updates jeder Java-Version, wie unter https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 dokumentiert. Sie müssen jedoch ein Oracle Support-Konto erstellen / sich bei diesem anmelden . * Andernfalls können Sie nur auf das letzte "öffentliche" Update jeder Java-Version zugreifen, z. B. 1.6_u45 (März 2013; letztes Update ist u65, Oktober 2013) *

Sobald Sie wissen , die persistente Verbindung, sollten Sie in der Lage sein , es zu realen Download zu lösen; Das Folgende funktioniert für mich, obwohl ich noch nicht weiß, ob sich die "aru" -Referenz ändert.

ME=<myOracleID>
PW=<myOraclePW>
PATCH_FILE=p13079846_17000_Linux-x86-64.zip

echo "Get real URL from the persistent link"

wget -o getrealurl.out --no-cookies --no-check-certificate --user=$ME \
--password=$PW --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" \
https://updates.oracle.com/Orion/Services/download/$PATCH_FILE?aru=16884382&\
patch_file=$PATCH_FILE

wait    # wget appears to go into background, so "wait" waits 
        # until all background processes complete

REALURL=`grep "^--" getrealurl.out |tail -1 |sed -e 's/.*http/http/'`
wget -O $PATCH_FILE $REALURL
#These last steps must be done quickly, as the REALURL seems to have a short-lived 
#cookie on it and I've had no success with  --keep-session-cookies etc.
tfewster
quelle
1
Ich würde dringend empfehlen, bei der Übermittlung eines Passworts kein --no-check-Zertifikat zu verwenden.
Rick Moritz
3

Wie bereits hier veröffentlicht: https://stackoverflow.com/a/41718895/4370196

Update für JDK 8 Update 121

Da Oracle einige md5hash in seine Download-Links eingefügt hat, kann ein Download-Link für die Befehlszeile nicht automatisch zusammengestellt werden.

Also bastelte ich an einer fiesen Bash-Befehlszeile, um den neuesten JDK-Download-Link zu erhalten, ihn herunterzuladen und direkt über RPM zu installieren. Für alle Interessierten:

wget -q http://www.oracle.com/technetwork/java/javase/downloads/index.html -O ./index.html && grep -Eoi '] +>' index.html | grep -Eoi '/technetwork/java/javase/downloads/jdk8-downloads-[0-9‹+.html' | (Kopf -n 1) | awk '{print " http://www.oracle.com " $ 1}' | xargs wget --no-cookies --header "Cookie: gpw_e24 = xxx; oraclelicense = accept-securebackup-cookie;" -O index.html -q && grep -Eoi '"Dateipfad": "[^"] + jdk-8u [0-9] + - linux-x64.rpm "' index.html | grep -Eoi 'http: [ ^ "] + '| xargs wget --no-cookies --header "Cookie: gpw_e24 = xxx; oraclelicense = accept-securebackup-cookie;" -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm

Der fett gedruckte Teil sollte durch das Paket Ihrer Wahl ersetzt werden.

Ben Herfurth
quelle
Ja, es ist nicht mehr so ​​einfach, einen Link zusammenzustellen. Ich habe einen ähnlichen Ansatz in einem Bash-Skript verwendet, um die neuesten JRE- und JDK-Download-Links für Version 8 und 9 zu erhalten. Sie finden sie in diesem Thread als Antwort .
U880D
2

Ich löse dieses Problem (für Debian-basierte Linux-Distributionen), indem ich Pakete java-packageeinige Male (für verschiedene Architekturen) erstelle und sie dann intern verteile.

Das große Plus ist, dass diese Methode immer funktioniert; egal wie verrückt die Webseiten von Oracle werden. Oracle kann meinen Build nicht mehr brechen!

Der Nachteil ist, dass die Einrichtung zunächst etwas aufwändiger ist.

  • Laden Sie die tar.gz-Dateien manuell in einem Browser herunter (und akzeptieren Sie damit ihre Bedingungen).
  • Ausführen make-jpkg jdk-7u51-linux-x64.tar.gz. Dies schafftoracle-java8-jdk_8_amd64.deb
  • Verteilen Sie es innerhalb Ihrer Organisation

Für die Verteilung über das Internet empfehle ich die Verwendung eines kennwortgeschützten apt-Repositorys oder die Bereitstellung von Rohpaketen mit symmetrischer Verschlüsselung:

passphrase="Hard to crack string. Use /dev/urandom for inspiration."
gpg --batch --symmetric --force-mdc --passphrase-fd 0 \
   oracle-java8-jdk_8_amd64.deb <<< "$passphrase"

Das Bereitstellen von (unverschlüsselten) .deb-Paketen im Internet ist wahrscheinlich ein Verstoß gegen Ihre Lizenzvereinbarung mit Oracle, in der es heißt:

... Oracle gewährt Ihnen eine ... Lizenz ... zur vollständigen Reproduktion und internen Nutzung der Software, die vollständig und unverändert zum alleinigen Zweck der Ausführung von Programmen ist. "

Wenn Sie auf der Empfangsseite ein passwortgeschütztes apt repo haben, müssen Sie es nur tun apt-get install. Wenn Sie Rohpakete haben, laden Sie diese herunter, entschlüsseln Sie dpkg -isie. Klappt wunderbar!

Mogsie
quelle
2
So wurde es implementiert, um die Lizenz zu ehren. Das ist großartig :-)
Kowser
2

wget Das hat bei mir funktioniert JDK8

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2F%www.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"
vvardhanz
quelle
2

Die akzeptierte Antwort funktionierte am 25.04.2017 nicht für mich. Die einfache Lösung bestand jedoch darin, das -bFlag anstelle der --headerOption zu verwenden.

Zum Beispiel, um jdk-1.8_131 zu erhalten:

version='8u131'; wget -H -O jdk-$version-linux-x64.tar.gz --no-check-certificate --no-cookies -b "oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/$version-b11/jdk-$version-linux-x64.tar.gz

Das wird im Hintergrund ausgeführt und schreibt die Ausgabe in wget-log.

ILMostro_7
quelle
1

Versuchen

wget --no-cookies --header "Cookie: s_nr=1359635827494; s_cc=true; gpw_e24=http%3A%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk6downloads-1902814.html; s_sq=%5B%5BB%5D%5D; gpv_p24=no%20value" http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64-rpm.bin --no-check-certificate -O ./jdk-6u45-linux-x64-rpm.bin

Wenn Sie wie ich sind und versuchen, Oracle JDK 6 zu bekommen.

Quelle: Oracle JVM-Download mit curl / wget

ssgao
quelle
1

Ich habe ein JDK-Download-Skript (speziell für tar.gz) für meine Gentoo-Boxen erstellt. Muss nicht wie andere ähnliche Skripte aktualisiert werden und versucht, den neuesten Build für die gewünschte Version "brute-force" herunterzuladen.

VERWENDUNGSZWECK

jdk-download< <version> <platform> [<build>]

* <version> - Something like "8u40"
* <platform> - Usually i586 or x64
* <build> - The internal build number used by oracle, to avoid guessing and trying to download starting from 99 to 1 (build 0, really?!!)

Blogeintrag

Quelle auf Bitbucket

Fabio Bonfante
quelle
1

oracle-java-download ist ein Projekt auf GitHub, mit dem Sie Download-Links für JDK 8 und JDK 9 erstellen können, die Sie für die weitere Verarbeitung verwenden können, z. B. in automatisierten Build- oder Bereitstellungsprozessen.

Zum Ausführen sind Linux, Docker und ein JDK> = 8 erforderlich.

Aventurin
quelle
1

Kontext

Ich hatte kürzlich das gleiche Problem und obwohl die Kommentare auf dieser und einigen anderen Seiten hilfreiche Hinweise lieferten, dachte ich, es wäre gut, die Schritte zu dokumentieren, die ich unternommen habe, um das Problem für Leute zu beheben, die möglicherweise weitere Hilfe benötigen.

Systemdetails

Ich verfolge die in AWS eingerichtete PNDA, indem ich die schrittweise pnda-Installationsanleitung unter folgender Adresse befolge:

https://github.com/pndaproject/pnda-guide/blob/develop/provisioning/aws/PREPARE.md

Ich verwende Ubuntu 14.04 [Free Tier-fähig] in der AWS-Cloud und führe den Code von einem 64-Bit-Windows8.1-Laptop aus. Ich verwende PUTTY, um eine Verbindung zur Serverinstanz herzustellen. Ich habe den pnda-Code von https://github.com/pndaproject/pnda auf die Ubuntu-Instanz geklont .

Wichtiger Hinweis Wenn Sie die Ubuntu-Instanz unter AWS verwenden möchten, stellen Sie sicher, dass es sich nur um 14.04 handelt. Wenn Sie Version 16 verwenden, funktioniert dies nicht. Ich habe es auf die harte Tour gelernt!

Auflösungsschritte

Wie diejenigen wissen, die so weit gegangen sind, dass sie auf den hier diskutierten Fehler gestoßen sind, würde die Spiegelerstellungsdatei die folgenden Schritte umfassen:

1) Führen Sie das Skript create_mirror.sh aus [ sudo su -s ./create_mirror.sh ], um den vollständigen Spiegelerstellungsprozess auszuführen

2) Dieses Skript ruft wiederum verschiedene andere Skripte auf - eines davon ist create_mirror_misc.sh ; Dieses Skript pnda-static-file-dependencies.txtenthält eine Liste der herunterzuladenden Dateien.

3) In der allerersten Zeile der Datei pnda-static-file-dependencies.txt befindet sich eine Referenz zum Herunterladen der Datei jdk-8u131-linux-x64.tar.gz von http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz oraclelicense=accept-securebackup-cookie; Zu diesem Zeitpunkt schlug mein Skript mit der Nachricht fehlFailed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) Ich habe die Seite aufgerufen http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gzund festgestellt, dass die folgende Fehlermeldung angezeigt wird**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5) Zur Lösung dieses Problems habe ich folgende Änderung der pnda-static-file-dependencies.txt; Ich habe --no-check-certificate --no-cookies hinzugefügt, um die Bedingung der Lizenzvereinbarung zu umgehen

6) Der überarbeitete Code sieht also so aus: http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz --no-check-certificate --no-cookies oraclelicense=accept-securebackup-cookie

Ich hoffe das ist hilfreich.

Stats_Lover
quelle
1

du solltest es versuchen:

wget \
        --no-cookies \
        --header "Cookie: oraclelicense=accept-securebackup-cookie" \
        http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-linux-x64.tar.gz \
        -O java.tar.gz
Walterwhites
quelle
1

Laden Sie jdk 8u221 herunter

$ wget -c --content-disposition "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=239835_230deb18db3e4014bb8e3e8324f81b43"
$ old=$(ls -hat | grep jre | head -n1)
$ mv $old $(echo $old | awk -F"?" '{print $1}')

mein Blog 044-wget 下载 jdk8u221

AnJia
quelle
0

Dies liegt daran, dass beim Klicken auf die Schaltfläche "Akzeptieren" auf der Download-Seite Ihres Browsers auf der Webseite ein Cookie gespeichert wird, mit dem Ihre Vereinbarung überprüft wird, bevor Sie die Datei herunterladen können. Das Problem tritt auf, wenn versucht wird, mit wget von der Befehlszeile herunterzuladen. Dies liegt daran, dass mit der wget-Anforderung zum Herunterladen der Datei keine Cookie-Informationen gesendet werden. Aus Sicht des Dateiservers sind Sie also ein völlig neuer Benutzer, der die Lizenz nicht akzeptiert hat Zustimmung.

Eine Lösung besteht darin, Cookie-Informationen mit der Option --header des Dienstprogramms wget zu senden (wie oben in anderen Antworten gezeigt). Wenn einige Inhalte geschützt sind, verwenden Sie im Idealfall die verschiedenen Sitzungsverwaltungsoptionen, die mit wget verfügbar sind. Für dieses spezielle Problem wird es jedoch (derzeit) gelöst, indem der CookieHeader mit der Download-Anfrage gesendet wird.

krishnakeshan
quelle
Wenn Sie auf „ Übernehmen“ und die URL von dieser Seite packen, es lenkt Sie http://download.oracle.com/otn/java/...statt http://download.oracle.com/otn-pub/java/...einfach ändern /otn/zu/otn-pub/
T.CK
0

So erhalten Sie den Befehl selbst. Dies funktioniert für jede Version:

  1. Greifen Sie hier auf die Paketseite zu : https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. Klicken Sie auf den Download-Link für das gewünschte Paket
  3. Aktivieren Sie das Kontrollkästchen und geben Sie an, dass Sie "überprüft und akzeptiert ..." haben.
  4. Klicken Sie mit der rechten Maustaste und kopieren Sie die Linkadresse über die Schaltfläche
  5. Fügen Sie es in einen Texteditor ein und kopieren Sie alles NACH 'nexturl =', beginnend mit 'https: //'.
  6. Aktualisieren Sie die Download-URL in diesem Befehl, und Sie sollten bereit sein:

    wget --no-check-certificate -c --header "Cookie: oraclelicense = accept-Securebackup-Cookie" https://download.oracle.com/otn/java/jdk/11.0.6+8/90eb79fb590d45c8971362673c5ab495/jdk- 11.0.6_linux-x64_bin.tar.gz

Um das wget weiter zu erläutern, sollte das --no-check-Zertifikat klar genug sein, aber der Header-Inhalt (für jeden Aufruf) kann mithilfe der Registerkarte "Developer Tools Network" in Ihrem Browser ermittelt werden. Die Entwicklertools sind leistungsstark und die Zeit zum Lernen lohnt sich. Genießen.

Alex Atkinson
quelle
0

@eric Antwort hat den Trick für mich getan, Sie müssen Begriffe in dem Befehl akzeptieren, den Sie einstellen, dh

"Cookie: oraclelicense=accept-securebackup-cookie"

Ihr letzter Befehl sieht also so aus

wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

Sie können durch Änderung der Version zu aktualisieren entscheiden 8u131zu 8uXXX. solange es im repo verfügbar ist.

Der Tote
quelle
-3
sudo wget --no-check-certificate --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-x64.rpm"
Nmeegama
quelle
-4

Klicken Sie zum Herunterladen von Ihrem Browser auf und kopieren Sie den genauen Link, von dem er heruntergeladen wurde, und fügen Sie ihn ein. Beispiel:

wget http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-linux-x64.tar.gz?AuthParam=1380225131_dd70d2038c57a4729d8c0226684xxxx

Sie können den Link herausfinden, indem Sie auf die Registerkarte "Netzwerk" Ihres Browsers schauen, nachdem Sie die Bedingungen in Oracle akzeptiert und zum Herunterladen geklickt haben. F12 in Chrome. Firebug in Firefox.

Jacktrades
quelle
1
Weil die Leute dies für die automatische Installation von Java auf Servern mit Bash-Skripten benötigen.
Saša Šijak