Le téléchargement de Java JDK sur Linux via wget s'affiche à la place sur la page de licence

615

Lorsque j'essaie de télécharger Java à partir d'Oracle, je finis par télécharger une page me disant que je dois accepter les termes de la licence OTN.

Désolé!

Pour télécharger des produits à partir d'Oracle Technology Network, vous devez accepter les termes de la licence OTN.

Assurez-vous que...

  • Votre navigateur dispose de «cookies» et de JavaScript activé.
  • Vous avez cliqué sur «Accepter la licence» pour le produit que vous souhaitez télécharger.
  • Vous tentez le téléchargement dans les 30 minutes suivant l'acceptation de la licence.

Comment télécharger et installer Java?

thejartender
la source
Cette question est sur le sujet car elle concerne la façon dont les développeurs installent les kits de développement. Le rouvrir pour cette raison.
George Stocker du

Réponses:

1659

MISE À JOUR POUR 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

MIS À JOUR POUR 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

MIS À JOUR POUR 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

MIS À JOUR POUR JDK 9, il semble que vous pouvez le télécharger directement depuis java.net sans envoyer d'en-tête

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

MIS À JOUR POUR 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"

MIS À JOUR POUR 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 utilisant 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

Dans tous les cas ci-dessus, remplacez «i586» pour «x64» pour télécharger la version 32 bits.

  • -j -> cookies indésirables
  • -k -> ignorer les certificats
  • -L -> suivre les redirections
  • -H [arg] -> en-têtes

curlpeut être utilisé à la place de wget.

MISE À JOUR POUR 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 utilisant 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

Encore une fois, assurez-vous de spécifier l'URL correcte pour la version que vous téléchargez. Vous pouvez trouver l'URL ici: site de téléchargement Oracle JDK

RÉPONSE ORIGINALE DU 9 juin 2012

Si vous souhaitez télécharger le JDK Oracle à partir de la ligne de commande à l'aide de wget, il existe une solution de contournement. Exécutez la wgetcommande comme suit:

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"

Assurez-vous de remplacer le lien de téléchargement par le bon pour la version que vous téléchargez.

Eric Kamara
la source
6
(Peut-être que ce zillionième republication fera enfin l'affaire.) Un simple --header "Cookie: oraclelicense=accept-securebackup-cookie"(ou --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]") semble bien fonctionner. Pourriez-vous confirmer cela?
Dét
2
Mise à jour pour la nouvelle 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. Le --no-cookies est redondant et --no-check-certificate n'est nécessaire qu'avec Wget 1.12 et les versions antérieures, qui ne prennent pas en charge le SAN (principalement RHEL / CentOS 6.x). La version cURL est: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
j'ai essayé le nouveau 121 verson avec l'url download.oracle.com/otn-pub/java/jdk/8u121-b13/… mais cela ne semble pas fonctionner. toute pensée?
Nam Nguyen
3
a obtenu l'ERREUR 404: Introuvable avec JDK 11, peut-être une URL incorrecte?
Tien Dung Tran
2
MISE À JOUR POUR Oracle La solution JDK 11 ne fonctionne plus
bomba
247

( Irani a mis à jour ma réponse, mais voici pour clarifier tout cela. )

Edit: mis à jour pour Java 11.0.1 , publié le 16 octobre 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 (aucun indicateur de cookie): http://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c Pour
en savoir plus, téléchargez les téléchargements sur oracle.com et java.com .

  • -c / --continue

    Permet de poursuivre un téléchargement inachevé.

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

    Depuis le 15 mars 2014, ce cookie est fourni à l'utilisateur après acceptation du contrat de licence et est nécessaire pour accéder aux packages Java sur download.oracle.com . La précédente (et première) implémentation du 27 mars 2012 utilisait le cookie gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. Les deux cas ne sont pas annoncés au public.

    La valeur ne doit pas nécessairement être " accept-securebackup-cookie".

Requis pour Wget <1,13

  • --no-check-certificate

    Requis uniquement avec wget 1.12 et versions antérieures , qui ne prennent pas en charge les certificats SAN ( Subject Alternative Name ) (principalement Red Hat Enterprise Linux 6.x et amis, tels que CentOS). La version 1.13 a été publiée en août 2011.

    Pour voir la version actuelle, utilisez: wget --version | head -1

Non requis

  • --no-cookies

    La combinaison --no-cookies --header "Cookie: name=value"est mentionnée comme support de cookie " officiel ", mais pas strictement requise ici.

boucle

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

    Requis pour que cURL redirige à travers tous les miroirs.

  • -C / --continue-at -

    Voir au dessus. cURL nécessite le tiret ( -) à la fin.

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

    Identique à -H / --header "Cookie: ...", mais accepte également les fichiers.

  • -O

    Requis pour que cURL enregistre les fichiers (voir la comparaison de l'auteur pour plus de différences).

Det
la source
2
"tiret précédent" devrait être "tiret suivant l'une ou l'autre forme de l'option" mais c'est un excellent résumé.
Alex Dupuy
1
Eh bien, je l'ai changé en " cURL nécessite le tiret ( -) à la fin. " Cela devrait être assez clair, vu la façon dont l'autre forme du flagest déjà affichée dans la commande.
Det
1
j'ai essayé la nouvelle version 121 avec l'url download.oracle.com/otn-pub/java/jdk/8u121-b13/… mais cela ne semble pas fonctionner. toute pensée?
Nam Nguyen
1
Il semble que cela ne fonctionne pas pour l'ancienne version. Je ne peux pas télécharger 8u121. Probablement à cause de Downloading these releases requires an oracle.com account. Une solution?
ALex_hha
1
Nous utilisons Docker, c'est pourquoi nous devons utiliser une version spécifique de Java. Oui, je peux trouver le fichier sur certains ftp, mais je viens de mentionner qu'à partir de maintenant, vous ne pouvez pas télécharger la version précédente du site sans leur compte
ALex_hha
35

Le téléchargement de Java à partir de la ligne de commande a toujours été problématique. Récemment, j'ai utilisé FireFox (d'autres navigateurs pourraient fonctionner) pour démarrer un téléchargement sur mon ordinateur portable, le mettre en pause (dans les fenêtres de téléchargement), utiliser l'élément de menu "Copier le lien de téléchargement" du menu contextuel affiché pour le téléchargement de fichier. Cette URL peut ensuite être utilisée sur la box Linux pour télécharger le même fichier. Je pense que l'URL a peu de temps à vivre. Moche, mais généralement réussi.

Andrew Gilmartin
la source
Oui .. ça marche. Agréable. J'ai eu mon URL comme download.oracle.com/otn-pub/java/jdk/7u9-b05/…
Mukus
3
C'est une question intéressante mais ne répond pas à la question. Cliquer sur FireFox est incompatible avec "automatiser le téléchargement".
Stéphane Gourichon
Pas aussi gênant (traduction: impossible) que dans mes navigateurs (pluriel) aujourd'hui. Environ 10 à 20% du chemin, le serveur d'Oracle se déconnectait, me laissant avec un téléchargement tronqué. L'outil CLI réessaie au moins là où il s'était arrêté, et finalement l'une des exécutions se terminera sans délai / rejet.
Roboprog
excellent! le paramètre de requête AuthParama quelque chose à voir avec la vérification d'Oracle si l'utilisateur a accepté la licence ou non.
asgs
seule solution qui fonctionne pour moi aujourd'hui. Toutes les astuces wget ci-dessus avec le paramètre d'acceptation de cookie n'ont pas fonctionné.
Saad Benbouzid
23

Mis à jour pour 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

Liens obsolètes ci-dessous

Mis à jour pour 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

Mis à jour pour 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

Mis à jour pour 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

Mis à jour pour 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

Mis à jour pour 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
la source
2
Cet absolu m'a aidé. Pour utiliser tar.gz, j'ai simplement dû renommer .rpm en .tar.gz
Yoraco Gonzales
19

Je sais qu'Oracle a tout fait pour rendre son Java Runtime et Java SDK aussi dur que possible.

Voici quelques guides pour les amateurs de ligne de commande.

Pour les systèmes de type Debian (testé sur Squeeze Debianet 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

Remarque: si vous connaissez un moyen meilleur ou plus simple d'ajouter un commentaire, je mettrai à jour le guide.

Sorin
la source
2
Depuis le 2013-11-02, d'autres méthodes ne sont pas faciles à ajuster avec différentes versions. Cette méthode fonctionne quelle que soit la version actuelle et peut être automatisée / scriptée / exécutée sans surveillance avec des options apt-get comme "--yes".
Stéphane Gourichon
J'ai essayé cette méthode avec oracle-java8-installer avec des --yes, --assume-yes, --force-yesoptions mais à chaque fois que l'installation veut que j'accepte le contrat de licence avec enter-key.
Drey
9

Kit de développement Java SE 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
la source
pourquoi --no-check-certificate? il fonctionne bien sans ce commutateur, donc en termes de sécurité, il ne devrait pas être utilisé, surtout lorsqu'il est obsolète.
tymik
6

Oracle a placé un cookie de prévention sur le lien de téléchargement pour vous forcer à accepter les termes même si l'accord de licence d'utilisation de Java stipule clairement qu'en utilisant simplement Java, vous «acceptez» la licence.

La méthode souhaitée par Oracle consiste à le télécharger avec un accord. Après cela, ce script peut être modifié pour votre Linux spécifique

#!/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
thejartender
la source
1
Cette réponse suppose que vous utilisez Linux et que vous souhaitez l'installer de manière / emplacement non standard, et un tas d'autres choses. Une meilleure réponse serait "suivez simplement les instructions d'installation sur le site de téléchargement" ... sauf si vous utilisez Ubuntu, auquel cas il existe d'autres façons de le faire.
Stephen C
8
Et comment est-il étrange que la réponse suppose Linux lorsque le titre de la question inclut Linux? Le sceipt n'est pas une solution universelle étant donné que Linux lui-même n'est pas tel. Étant donné que c'est ma propre réponse à ma propre question, je l'ai testée et cela a fonctionné pour moi.
thejartender
6

Pour ceux qui ont également besoin de JCE8, vous pouvez également le télécharger.

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

Ou

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
la source
5

Cela fonctionne pour le JDK 6, il vous suffit de remplacer l'URL de téléchargement par la dernière version.

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
la source
Cela fonctionne mais je ne pouvais pas choisir 6u48 parce que la partie où vous avez 6u33-b03.
Jacob Phillips
Le 2013-11-02, cela ne pouvait pas fonctionner. Télécharge une page d'inscription HTML au lieu du fichier.
Stéphane Gourichon
5

cette commande peut télécharger le package jdk8 tgz maintenant (2018-09-06), bonne chance!

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
la source
J'ai essayé d'autres commandes mais rien n'a fonctionné, mais celui-ci a fonctionné correctement (exécuté le 20 / Sep / 2019).
Un autre codeur le
4

Au lieu d'utiliser pour chaque nouvelle version de Java un nouveau lien ou de modifier des scripts existants, je cherchais un moyen plus générique pour automatiser le téléchargement des packages Java requis et l'installation ultérieure via yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm .

J'ai utilisé une approche quelque peu triviale similaire à l'action manuelle / utilisateur pour trouver le package et le télécharger. Je suis aussi assez sûr que l' on va trouver un moyen de faire plus élégante en utilisant d' autres outils comme egrep, awk, etc .., laissez donc comme un exemple ici:

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

Étant donné que les liens de téléchargement sont disponibles maintenant, vous pouvez continuer avec wgetou curl.

U880D
la source
3

Tout ce qui précède semble supposer que vous connaissez l'URL du dernier RPM Java ...

Oracle fournit des liens persistants vers les dernières mises à jour de chaque version Java, comme indiqué sur https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 - même si vous devez créer / vous connecter à un compte de support Oracle . * Sinon, vous ne pouvez accéder qu'à la dernière mise à jour "publique" de chaque version Java, par exemple 1.6_u45 (mars 2013; la dernière mise à jour est u65, octobre 2013) *

Une fois que vous connaissez le lien persistant, vous devriez pouvoir le résoudre en un véritable téléchargement; Ce qui suit fonctionne pour moi, bien que je ne sache pas encore si la référence "aru" change.

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
la source
1
Je déconseille fortement d'utiliser --no-check-certificate lors de la transmission d'un mot de passe.
Rick Moritz
3

Comme déjà publié ici: https://stackoverflow.com/a/41718895/4370196

Mise à jour pour JDK 8 Update 121

Comme Oracle a inséré du md5hash dans leurs liens de téléchargement, on ne peut pas assembler automatiquement un lien de téléchargement pour la ligne de commande.

J'ai donc bricolé une ligne de commande bash pour obtenir le dernier lien de téléchargement jdk, le télécharger et l'installer directement via rpm. Pour tous ceux qui sont intéressés:

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' | (tête -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 '"filepath": "[^"] + 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

La partie en gras doit être remplacée par le package de votre choix.

Ben Herfurth
la source
Oui, il n'est plus si facile de monter un lien. J'ai utilisé une approche similaire dans un script bash pour obtenir les derniers liens de téléchargement JRE et JDK pour les versions 8 et 9. Il peut être trouvé dans ce fil comme réponse .
U880D
2

Je résous ce problème (pour les distributions Linux basées sur Debian) en créant des paquets en utilisant java-package plusieurs reprises (pour diverses architectures), puis en les distribuant en interne.

Le gros avantage est que cette méthode fonctionne toujours; peu importe à quel point les pages Web d'Oracle deviennent folles. Oracle ne peut plus casser ma version!

L'inconvénient est que c'est un peu plus de travail à mettre en place au départ.

  • Téléchargez les fichiers tar.gz manuellement dans un navigateur (donc "acceptez" leurs conditions)
  • Courir make-jpkg jdk-7u51-linux-x64.tar.gz . Cela créeoracle-java8-jdk_8_amd64.deb
  • Distribuez-le au sein de votre organisation

Pour la distribution sur Internet, je suggère d'utiliser un référentiel apt protégé par mot de passe ou de fournir des packages bruts utilisant un cryptage symétrique:

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"

Bien sûr, la fourniture de packages (non chiffrés) .deb sur Internet est probablement une violation de votre accord de licence avec Oracle, qui stipule:

... Oracle vous accorde une ... licence ... pour reproduire et utiliser en interne le Logiciel complet et non modifié dans le seul but d'exécuter des Programmes "

Côté réception, si vous disposez d'un repo apt protégé par mot de passe, il vous suffit de le faire apt-get install. Si vous avez des paquets bruts, téléchargez-les, déchiffrez- dpkg -iles. Fonctionne comme un charme!

mogsie
la source
2
c'est ainsi qu'il a été implémenté en respectant la licence. C'est génial :-)
Kowser
2

wget Cela a fonctionné pour moi 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
la source
2

La réponse acceptée ne fonctionnait pas pour moi au 25/04/2017. Cependant, la solution simple utilisait l' -bindicateur au lieu de l' --headeroption.

Par exemple, pour obtenir 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

Cela s'exécutera en arrière-plan, en écrivant la sortie dans wget-log.

ILMostro_7
la source
1

Essayer

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

si vous êtes comme moi essayant d'obtenir Oracle JDK 6.

source: téléchargement Oracle JVM à l'aide de curl / wget

ssgao
la source
1

J'ai créé un script de téléchargement jdk (spécifique pour tar.gz) pour mes gentoo boxes. N'a pas besoin d'être mis à jour comme d'autres scripts similaires, en essayant de télécharger "brutalement" la dernière version pour la version que vous voulez.

USAGE

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

Article de blog

Source sur bitbucket

Fabio Bonfante
la source
1

oracle-java-download est un projet sur GitHub qui vous permet de créer des liens de téléchargement pour JDK 8 et JDK 9 que vous pouvez utiliser pour un traitement ultérieur, par exemple dans des processus de construction ou de déploiement automatisés.

Il nécessite Linux, Docker et un JDK> = 8 pour fonctionner.

aventurine
la source
1

Le contexte

J'ai récemment rencontré le même problème et bien que les commentaires sur cette page et quelques autres aient fourni des conseils utiles - j'ai pensé qu'il serait bon de documenter les mesures que j'ai prises pour résoudre le problème pour les personnes qui pourraient avoir besoin d'aide supplémentaire.

Détails du système

Je suis le PNDA configuré sur AWS en suivant le guide d'installation pas à pas de pnda à l'adresse:

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

J'utilise ubuntu 14.04 [niveau éligible gratuit] sur le cloud AWS et j'exécute le code à partir d'un ordinateur portable Windows 8.1 64 bits. J'utilise PUTTY pour me connecter à l'instance de serveur. J'ai git cloné le code pnda de https://github.com/pndaproject/pnda vers l'instance ubuntu.

Remarque importante Veuillez noter que si vous prévoyez d'utiliser l'instance Ubuntu sur AWS, assurez-vous que c'est 14.04 uniquement. Si vous utilisez la version 16, cela ne fonctionne pas. Je l'ai appris à la dure!

Étapes de résolution

Comme ceux qui sont allés jusqu'à rencontrer l'erreur discutée ici le savent - le fichier de création de miroir implique les étapes suivantes -

1) Exécutez le script create_mirror.sh [ sudo su -s ./create_mirror.sh ]pour exécuter le processus de création de miroir complet

2) Ce script appelle à son tour divers autres scripts - l'un d'eux étant create_mirror_misc.sh ; ce script se réfère à pnda-static-file-dependencies.txtqui a une liste de fichiers à télécharger.

3) Sur la toute première ligne du fichier pnda-static-file-dependencies.txt se trouve une référence pour télécharger le fichier jdk-8u131-linux-x64.tar.gz à partir de http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz oraclelicense=accept-securebackup-cookie; C'est à ce stade que mon script échouait avec le messageFailed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) J'ai parcouru la page http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gzet trouvé le message d'erreur suivant affiché**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5) Pour résoudre ce problème, j'ai apporté la modification suivante à pnda-static-file-dependencies.txt; J'ai ajouté --no-check-certificate --no-cookies pour contourner la condition du contrat de licence

6) Le code révisé ressemble donc à - 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

J'espère que ceci est utile.

Stats_Lover
la source
1

tu devrais essayer:

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
la source
1

télécharger 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}')

mon blog 044-wget 下载 jdk8u221

AnJia
la source
0

Cela se produit car lorsque vous cliquez sur le bouton "Accepter" sur la page de téléchargement de votre navigateur, la page Web enregistre un cookie qu'elle utilise pour vérifier votre accord avant de vous permettre de télécharger le fichier. Le problème se produit lorsque vous essayez de télécharger à partir de la ligne de commande à l'aide de wget et c'est parce qu'il n'y a pas d'informations de cookie envoyées avec la demande wget pour télécharger le fichier, donc du point de vue du serveur de fichiers, vous êtes un utilisateur complètement nouveau qui n'a pas accepté la licence accord.

Une solution consiste à envoyer des informations sur les cookies à l'aide de l'option --header de l'utilitaire wget (comme indiqué ci-dessus dans d'autres réponses). Idéalement, si certains contenus sont protégés, vous utiliseriez les différentes options de gestion de session disponibles avec wget. Pour ce problème particulier, cependant, il est résolu (actuellement) en envoyant l'en- Cookietête avec la demande de téléchargement.

krishnakeshan
la source
Lorsque vous cliquez sur "Accepter" et récupérez l'URL de cette page, il vous dirige vers http://download.oracle.com/otn/java/...au lieu de http://download.oracle.com/otn-pub/java/...simplement passer /otn/à/otn-pub/
T.CK
0

Voici comment obtenir la commande vous-même. Cela fonctionne pour n'importe quelle version:

  1. Accédez à la page des packages ici: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. Cliquez sur le lien de téléchargement pour votre package souhaité
  3. Cochez la case indiquant que vous avez "examiné et accepté ..."
  4. Faites un clic droit et copiez l'adresse du lien à partir du bouton
  5. Collez dans un éditeur de texte, puis copiez tout APRÈS 'nexturl =', en commençant par 'https: //'
  6. Mettez à jour l'URL de téléchargement dans cette commande et vous devriez être prêt à partir:

    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

Pour expliquer davantage le wget, le --no-check-certificate doit être suffisamment clair, mais le contenu de l'en-tête (pour tout appel) peut être découvert à l'aide de l'onglet Réseau des outils de développement de votre navigateur. Les outils de développement sont puissants et valent bien le temps d'apprendre. Prendre plaisir.

Alex Atkinson
la source
0

La réponse @eric a fait l'affaire pour moi, vous devez accepter les termes de la commande que vous définissez, c'est-à-dire

"Cookie: oraclelicense=accept-securebackup-cookie"

de sorte que votre commande finale ressemble ainsi

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

Vous pouvez décider de mettre à jour la version en changeant 8u131pour 8uXXX. tant qu'il est disponible dans le repo.

The Dead Guy
la source
-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
la source
-4

Pourquoi ne pas cliquer pour télécharger à partir de votre navigateur, puis copier et coller le lien exact où il a été téléchargé, par exemple:

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

Vous pouvez trouver le lien en regardant l'onglet réseau de votre navigateur après avoir accepté les termes dans oracle et en cliquant pour télécharger. F12 en Chrome. Firebug dans Firefox.

jacktrades
la source
1
Parce que les gens en ont besoin pour l'installation automatique de java sur des serveurs avec des scripts bash.
Saša Šijak