Il download di Java JDK su Linux tramite wget viene invece mostrato nella pagina della licenza


615

Quando provo a scaricare Java da Oracle, invece, finisco per scaricare una pagina che mi dice che devo accettare i termini della licenza OTN.

Scusate!

Per scaricare prodotti da Oracle Technology Network è necessario accettare le condizioni di licenza OTN.

Assicurati che ...

  • Il tuo browser ha "cookies" e JavaScript abilitati.
  • Hai fatto clic su "Accetta licenza" per il prodotto che desideri scaricare.
  • Si tenta di scaricare entro 30 minuti dall'accettazione della licenza.

Come posso scaricare e installare Java?


Questa domanda è in argomento in quanto riguarda il modo in cui gli sviluppatori installano i kit di sviluppo. Riaprirlo per questo motivo.
George Stocker,

Risposte:


1659

AGGIORNATO PER 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

AGGIORNATO PER 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

AGGIORNATO PER 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

AGGIORNATO PER JDK 9 sembra che ora puoi scaricarlo direttamente da java.net senza inviare un'intestazione

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

AGGIORNATO PER 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"

RPM:

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"

AGGIORNATO PER JDK 8u131

RPM:

  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

RPM usando l'arricciatura:

 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 tutti i casi precedenti, sostituire "i586" per "x64" per scaricare la build a 32 bit.

  • -j -> cookie spazzatura
  • -k -> ignora i certificati
  • -L -> segui i reindirizzamenti
  • -H [arg] -> intestazioni

curlpuò essere usato al posto di wget.

AGGIORNAMENTO PER 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

RPM usando l'arricciatura:

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

Ancora una volta, assicurati di specificare l'URL corretto per la versione che stai scaricando. Puoi trovare l'URL qui: sito di download Oracle JDK

RISPOSTA ORIGINALE DAL 9 giugno 2012

Se stai cercando di scaricare Oracle JDK dalla riga di comando utilizzando wget, esiste una soluzione alternativa. Eseguire il wgetcomando come segue:

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"

Assicurati di sostituire il link di download con quello corretto per la versione che stai scaricando.


6
(Forse questo miliardesimo ripubblicato alla fine farà il trucco.) Un semplice --header "Cookie: oraclelicense=accept-securebackup-cookie"(o --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]") sembra funzionare bene. Potresti confermarlo?
Det

2
Aggiornamento per il fresco 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. I --no-cookie è ridondante e --no-check-certificato è necessario solo con Wget 1.12 e più anziani, che mancano il supporto SAN (principalmente RHEL / CentOS 6.x). La versione cURL è: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
ho provato il nuovo 121 con l'URL download.oracle.com/otn-pub/java/jdk/8u121-b13/… ma non sembra funzionare. qualche pensiero?
Nam Nguyen,

3
ottenuto ERRORE 404: non trovato con JDK 11, potrebbe essere un URL errato?
Tien Dung Tran,

2
AGGIORNATO PER Oracle La soluzione JDK 11 non funziona più
bomba

247

( Irani aggiornato alla mia risposta, ma ecco per chiarire tutto. )

Modifica: aggiornato per Java 11.0.1 , rilasciato il 16 ottobre 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 (senza cookie flag): http://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c
Per ulteriori informazioni, consulta i download in oracle.com e java.com .

  • -c / --continue

    Permette di continuare un download incompiuto.

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

    Dal 15 marzo 2014 questo cookie viene fornito all'utente dopo aver accettato il Contratto di licenza ed è necessario per accedere ai pacchetti Java in download.oracle.com . La precedente (e prima) implementazione del 27 marzo 2012 ha utilizzato il cookie gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. Entrambi i casi rimangono senza preavviso al pubblico.

    Il valore non deve essere " accept-securebackup-cookie".

Richiesto per Wget <1.13

  • --no-check-certificate

    Richiesto solo con wget 1.12 e precedenti , che non supportano i certificati SAN ( Subject Alternative Name ) (principalmente Red Hat Enterprise Linux 6.xe amici, come CentOS). 1.13 è stato rilasciato nell'agosto 2011.

    Per vedere la versione corrente, utilizzare: wget --version | head -1

Non richiesto

  • --no-cookies

    La combinazione --no-cookies --header "Cookie: name=value"è menzionata come supporto " ufficiale " per i cookie, ma qui non strettamente richiesta.

arricciare

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

    Richiesto per cURL per reindirizzare attraverso tutti i mirror.

  • -C / --continue-at -

    Vedi sopra. cURL richiede il trattino ( -) alla fine.

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

    Come -H / --header "Cookie: ...", ma accetta anche file.

  • -O

    Richiesto per cURL per salvare i file (vedere il confronto dell'autore per ulteriori differenze).


2
"trattino precedente" dovrebbe essere "trattino che segue entrambe le forme dell'opzione", ma questo è un eccellente riassunto.
Alex Dupuy,

1
Bene, l'ho cambiato in " cURL richiede il trattino ( -) alla fine. " Questo dovrebbe essere abbastanza chiaro, preso come l'altra forma di flagè già mostrata nel comando.
Det

1
ho provato la nuova versione 121 con url download.oracle.com/otn-pub/java/jdk/8u121-b13/… ma non sembra funzionare. qualche pensiero?
Nam Nguyen,

1
Sembra che non funzioni con la vecchia versione. Non riesco a scaricare 8u121. Probabilmente a causa di Downloading these releases requires an oracle.com account. Qualche soluzione?
ALex_hha,

1
Usiamo la finestra mobile, ecco perché dobbiamo usare una versione specifica di java. Sì, posso trovare il file su alcuni ftp, ma ho appena detto che da ora non puoi scaricare la versione precedente dal sito senza il loro account
ALex_hha

35

Scaricare Java dalla riga di comando è sempre stato problematico. Quello che ho fatto di nuovo è usare FireFox (altri browser potrebbero funzionare) per avviare un download sul mio laptop, metterlo in pausa (nelle finestre dei download), utilizzare la voce di menu "Copia link di download" del menu di scelta rapida visualizzato per download del file. Questo URL può quindi essere utilizzato sulla casella Linux per scaricare lo stesso file. Mi aspetto che l'URL abbia poco tempo per vivere. Brutto, ma generalmente di successo.


Sì .. funziona. Bello. Ho avuto il mio URL come download.oracle.com/otn-pub/java/jdk/7u9-b05/…
Mukus

3
Questa è una questione interessante ma non risponde alla domanda. Fare clic su FireFox non è compatibile con "download automatico".
Stéphane Gourichon,

Oggi non è così fastidioso (traduzione: impossibile) come nei miei browser (plurale). Circa il 10-20% del totale, il server Oracle si disconnetterebbe, lasciandomi con un download troncato. Lo strumento CLI tenta almeno da dove era stato interrotto e alla fine una delle esecuzioni verrà completata senza timeout / rifiuto.
Roboprog,

eccellente! la query param AuthParamha qualcosa a che fare con Oracle che verifica se l'utente ha accettato o meno la Licenza.
chiede

l'unica soluzione che funziona per me oggi. Tutti i trucchi wget sopra con parametro accetta cookie non funzionavano.
Saad Benbouzid,

23

Aggiornato per 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

Link obsoleti di seguito

Aggiornato per 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

Aggiornato per 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

Aggiornato per 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

Aggiornato per 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

Aggiornato per 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


2
Questo assoluto mi ha aiutato. Per usare tar.gz ho semplicemente dovuto rinominare .rpm in .tar.gz
Yoraco Gonzales

19

So che Oracle ha reso tutto il possibile per rendere il loro Java Runtime e Java SDK il più duro possibile.

Ecco alcune guide per gli amanti della riga di comando.

Per sistemi simili a Debian (testato su Debiansqueeze e 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

Nota: se conosci un modo migliore o più semplice aggiungi un commento, aggiornerò la guida.


2
A partire dal 02/11/2013, altri metodi non sono facili da regolare con versioni diverse. Questo metodo funziona qualunque sia la versione attuale e può essere automatizzato / scritto / eseguito incustodito con opzioni apt-get come "--yes".
Stéphane Gourichon,

Ho provato questo metodo con oracle-java8-installer con --yes, --assume-yes, --force-yesopzioni ma ogni volta che l'installazione vuole che accetti il ​​contratto di licenza con il tasto invio .
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

perchè --no-check-certificate? funziona bene senza quell'interruttore, quindi in termini di sicurezza non dovrebbe essere usato, specialmente quando è obsoleto.
Tymik,


6

Oracle ha inserito un cookie di prevenzione sul collegamento per il download per costringerti ad accettare i termini anche se l'accordo di licenza per l'utilizzo di Java afferma chiaramente che semplicemente utilizzando Java si 'accetta' la licenza.

Il metodo che Oracle vuole è che tu lo scarichi con un accordo. Dopodiché, questo script può essere modificato per il tuo specifico Linux

#!/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

1
Questa risposta presuppone che tu stia utilizzando Linux e che tu voglia installarlo in un modo / luogo non standard e un sacco di altre cose. Una risposta migliore sarebbe "basta seguire le istruzioni di installazione sul sito Web di download" ... a meno che non si stia utilizzando Ubuntu, nel qual caso ci sono altri modi per farlo.
Stephen C,

8
E come è strano che la risposta assuma Linux quando il titolo della domanda include Linux? La sceipt non è una misura unica dato che Linux stesso non è tale. Dato che questa è la mia risposta alla mia domanda, l'ho testata e ha funzionato per me.
thejartender,

6

Anche per chi ha bisogno di JCE8, è possibile scaricare anche quello.

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

O

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

5

Funziona con JDK 6, devi solo sostituire l'URL di download con l'ultima versione.

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

Funziona ma non ho potuto scegliere 6u48 perché la parte in cui hai 6u33-b03.
Jacob Phillips,

Il 2013-11-02, non è stato possibile farlo funzionare. Scarica una pagina di registrazione HTML anziché il file.
Stéphane Gourichon,

5

questo comando può ora scaricare il pacchetto tgz jdk8 (06-09-2018), buona fortuna!

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"

Ho provato gli altri comandi ma niente ha funzionato, ma questo ha funzionato senza problemi (eseguito il 20 settembre 2019).
Un altro programmatore,

4

Invece di utilizzare per ogni nuova versione di Java un nuovo collegamento o modificare gli script esistenti, stavo cercando un modo più generico per automatizzare il download dei pacchetti Java richiesti e l'installazione successiva tramite yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm.

Ho usato un approccio in qualche modo banale simile all'azione manuale / dell'utente per trovare il pacchetto e scaricarlo. Sono anche abbastanza sicuro che si troverà un modo più elegante per farlo utilizzando altri strumenti come egrep, awk, ecc .., in modo da lasciare come un esempio qui:

#!/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

Poiché i collegamenti per il download sono ora disponibili, è possibile procedere ulteriormente con wgeto curl.


3

Tutto quanto sopra sembra presupporre che tu conosca l'URL dell'ultimo RPM Java ...

Oracle fornisce collegamenti persistenti agli ultimi aggiornamenti di ogni versione di Java come documentato su https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 - sebbene sia necessario creare / accedere a un account di supporto Oracle . * Altrimenti puoi accedere solo all'ultimo aggiornamento "pubblico" di ogni versione di Java, ad esempio 1.6_u45 (marzo 2013; l'ultimo aggiornamento è u65, ott 2013) *

Una volta che conosci il link persistente, dovresti essere in grado di risolverlo al download reale; Quanto segue funziona per me, anche se non so ancora se il riferimento "aru" cambia.

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.

1
Consiglio vivamente di non usare --no-check-certificate quando si trasmette una password.
Rick Moritz,

3

Come già pubblicato qui: https://stackoverflow.com/a/41718895/4370196

Aggiornamento per JDK 8 Aggiornamento 121

Poiché Oracle ha inserito alcuni md5hash nei loro collegamenti di download, non è possibile assemblare automaticamente un collegamento di download per la riga di comando.

Quindi ho armeggiato qualche brutta riga di comando bash per ottenere l'ultimo link di download jdk, scaricarlo e installarlo direttamente tramite rpm. Per tutti coloro che sono interessati:

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' | (capo -n 1) | awk '{print " http://www.oracle.com " $ 1}' | xargs wget --no-cookies --header "Cookie: gpw_e24 = xxx; oraclelicense = accetta-securebackup-cookie;" -O index.html -q && grep -Eoi '"percorso file": "[^"] + jdk-8u [0-9] + - linux-x64.rpm "' index.html | grep -Eoi 'http: [ ^ "] + '| xargs wget --no-cookies --header "Cookie: gpw_e24 = xxx; oraclelicense = accetta-securebackup-cookie;" -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm

La parte in grassetto dovrebbe essere sostituita dal pacchetto di tuo gradimento.


Sì, non è più così semplice assemblare un collegamento. Ho usato un approccio simile in uno script bash per ottenere gli ultimi link per il download di JRE e JDK per le versioni 8 e 9. Può essere trovato in questa discussione come risposta .
U880D,

2

Risolvo questo (per le distribuzioni Linux basate su Debian) creando pacchetti usando java-packagealcune volte (per varie architetture), quindi distribuendoli internamente.

Il grande vantaggio è che questo metodo funziona sempre; non importa quanto pazze diventino le pagine Web di Oracle. Oracle non può più infrangere la mia build!

L'aspetto negativo è che è un po 'più di lavoro da configurare inizialmente.

  • Scarica manualmente i file tar.gz in un browser (quindi "accettando" i loro termini)
  • Corri make-jpkg jdk-7u51-linux-x64.tar.gz. Questo creaoracle-java8-jdk_8_amd64.deb
  • Distribuiscilo all'interno della tua organizzazione

Per la distribuzione su Internet, suggerisco di utilizzare un repository apt protetto da password o di fornire pacchetti grezzi utilizzando la crittografia simmetrica:

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"

Naturalmente fornire pacchetti .deb (non crittografati) su Internet è probabilmente una violazione del contratto di licenza con Oracle, che afferma:

... Oracle ti concede una ... licenza ... per riprodurre e utilizzare internamente il Software completo e non modificato al solo scopo di eseguire Programmi "

Per quanto riguarda la ricezione, se si dispone di un repository apt protetto da password, è sufficiente farlo apt-get install. Se hai pacchetti grezzi, scarica, decodifica e dpkg -iloro. Funziona come un fascino!


2
quindi è così che è stato implementato onorando la licenza. Questo è fantastico :-)
Kowser il

2

wget Questo ha funzionato per me 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"

2

La risposta accettata non funzionava per me dal 25-04-2017. Tuttavia, la soluzione semplice stava usando la -bbandiera invece --headerdell'opzione.

Ad esempio, per ottenere jdk-1.8_131:

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

Ciò verrà eseguito in background, scrivendo l'output in wget-log.


1

Provare

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

se sei come me, stai cercando di ottenere Oracle JDK 6.

fonte: download Oracle JVM usando curl / wget


1

Ho creato uno script jdk-download (specifico per tar.gz) per i miei box gentoo. Non ha bisogno di essere aggiornato come altri script simili, cercando di scaricare "forza bruta" l'ultima build per qualsiasi versione desideri.

USO

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?!!)

Post sul blog

Fonte su bitbucket


1

oracle-java-download è un progetto su GitHub che consente di creare collegamenti di download per JDK 8 e JDK 9 che è possibile utilizzare per ulteriori elaborazioni, ad esempio nei processi di compilazione o distribuzione automatizzati.

Richiede Linux, Docker e un JDK> = 8 per funzionare.



1

Contesto

Di recente ho riscontrato lo stesso problema e sebbene i commenti su questa pagina e alcuni altri abbiano fornito utili suggerimenti, ho pensato che sarebbe stato utile documentare i passi che ho fatto per risolvere il problema per le persone che potrebbero aver bisogno di ulteriore aiuto.

Dettagli di sistema

Sto seguendo la configurazione PNDA su AWS seguendo la guida all'installazione pnda passo dopo passo su:

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

Sto usando Ubuntu 14.04 [idoneo per livelli gratuiti] sul cloud AWS e sto eseguendo il codice dal laptop Windows 8.1 a 64 bit. Sto usando PUTTY per connettermi all'istanza del server. Ho clonato il codice pnda da https://github.com/pndaproject/pnda all'istanza ubuntu.

Nota importante Nota che se prevedi di utilizzare l'istanza di Ubuntu su AWS assicurati che sia solo 14.04. Se si utilizza la versione 16, non funziona. L'ho imparato a mie spese!

Passaggi di risoluzione

Come sanno quelli che sono arrivati ​​al punto di aver riscontrato l'errore qui discusso, il file di creazione del mirror prevede i seguenti passaggi:

1) Eseguire lo script create_mirror.sh [ sudo su -s ./create_mirror.sh ]per eseguire il processo di creazione del mirror completo

2) Questo script a sua volta chiama vari altri script - uno dei quali è create_mirror_misc.sh ; questo script fa riferimento a pnda-static-file-dependencies.txtquale ha un elenco di file da scaricare.

3) Sulla prima riga del file pnda-static-dependencies.txt c'è un riferimento per scaricare il file jdk-8u131-linux-x64.tar.gz http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz oraclelicense=accept-securebackup-cookie; È a questo punto che la mia sceneggiatura non ha funzionato con il messaggioFailed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) Sono passato alla pagina http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gze ho trovato il seguente messaggio di errore visualizzato**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5) Per risolvere questo problema ho apportato la seguente modifica a pnda-static-file-dependencies.txt; Ho aggiunto --no-check-certificate --no-cookies per bypassare la condizione del contratto di licenza

6) Quindi il codice modificato sembra: 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

Spero che questo sia utile.


1

dovresti provare:

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

1

scarica jdk 8u221

$ 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}')

il mio blog 044-wget 下载 jdk8u221


0

Ciò accade perché quando fai clic sul pulsante "Accetta" nella pagina di download del tuo browser, la pagina web salva un cookie che utilizza per controllare il tuo accordo prima di lasciarti scaricare il file. Il problema si verifica quando si tenta di scaricare dalla riga di comando utilizzando wget ed è perché non ci sono informazioni sui cookie inviate con la richiesta wget per scaricare il file, quindi dal punto di vista del file server, sei un utente completamente nuovo che non ha accettato la licenza accordo.

Una soluzione è quella di inviare informazioni sui cookie utilizzando l'opzione --header dell'utilità wget (come mostrato sopra in altre risposte). Idealmente se alcuni contenuti sono protetti, useresti le varie opzioni di gestione delle sessioni disponibili con wget. Per questo particolare problema, tuttavia, viene risolto (attualmente) inviando il fileCookie intestazione con la richiesta di download.


Quando fai clic su "Accetta" e prendi l'URL da quella pagina, ti dirige http://download.oracle.com/otn/java/...invece di http://download.oracle.com/otn-pub/java/...passare /otn/a/otn-pub/
T.CK

0

Ecco come ottenere il comando da soli. Funziona con qualsiasi versione:

  1. Accedi alla pagina dei pacchetti qui: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. Fare clic sul collegamento per il download per il pacchetto desiderato
  3. Seleziona la casella che indica che hai "esaminato e accettato ..."
  4. Fare clic con il tasto destro del mouse e copiare l'indirizzo del collegamento dal pulsante
  5. Incolla in un editor di testo e copia tutto DOPO 'nexturl =', iniziando con 'https: //'
  6. Aggiorna l'URL di download in questo comando e dovresti essere a posto:

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

Per spiegare ulteriormente il wget, il certificato --no-check dovrebbe essere abbastanza chiaro, ma il contenuto dell'intestazione (per qualsiasi chiamata) è rilevabile utilizzando la scheda Rete degli strumenti per sviluppatori nel browser. Gli strumenti per sviluppatori sono potenti e valgono la pena imparare. Godere.


0

@eric answer ha fatto il trucco per me, devi accettare i termini nel comando che stai impostando, ad es

"Cookie: oraclelicense=accept-securebackup-cookie"

quindi il tuo comando finale sembra così

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

Puoi decidere di aggiornare la versione cambiando 8u131in 8uXXX. così a lungo è disponibile nel repository.


-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"

-4

Perché non fare clic per scaricare dal browser, quindi copiare e incollare il collegamento esatto in cui è stato scaricato, ad esempio:

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

Puoi scoprire il link guardando la scheda di rete del tuo browser dopo aver accettato i termini in Oracle e aver fatto clic per scaricare. F12 in cromo. Firebug in Firefox.


1
Perché la gente ne ha bisogno per l'installazione automatica di java su server con script bash.
Saša Šijak,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.