La descarga de Java JDK en Linux a través de wget se muestra en la página de licencia

615

Cuando trato de descargar Java desde Oracle, termino descargando una página que me dice que necesito aceptar los términos de la licencia OTN.

¡Lo siento!

Para descargar productos de Oracle Technology Network, debe aceptar los términos de la licencia OTN.

Estar seguro de que...

  • Su navegador tiene "cookies" y JavaScript habilitado.
  • Ha hecho clic en "Aceptar licencia" para el producto que desea descargar.
  • Intenta la descarga dentro de los 30 minutos posteriores a la aceptación de la licencia.

¿Cómo puedo descargar e instalar Java?

thejartender
fuente
Esta pregunta es sobre el tema ya que se refiere a cómo los desarrolladores instalan kits de desarrollo. Reabrirlo por esa razón.
George Stocker

Respuestas:

1659

ACTUALIZADO PARA 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

ACTUALIZADO PARA 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

ACTUALIZADO PARA 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

ACTUALIZADO PARA JDK 9 parece que puede descargarlo ahora directamente desde java.net sin enviar un encabezado

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

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

ACTUALIZADO PARA 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 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

En todos los casos anteriores, sustituya 'i586' por 'x64' para descargar la compilación de 32 bits.

  • -j -> cookies basura
  • -k -> ignorar certificados
  • -L -> seguir redireccionamientos
  • -H [arg] -> encabezados

curlse puede usar en lugar de wget.

ACTUALIZACIÓN PARA 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 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

Una vez más, asegúrese de especificar la URL correcta para la versión que está descargando. Puede encontrar la URL aquí: sitio de descarga de Oracle JDK

RESPUESTA ORIGINAL DEL 9 de junio de 2012

Si está buscando descargar Oracle JDK desde la línea de comandos wget, existe una solución alternativa. Ejecute el wgetcomando de la siguiente manera:

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"

Asegúrese de reemplazar el enlace de descarga con el correcto para la versión que está descargando.

Eric Kamara
fuente
66
(Tal vez esta publicación millonésima finalmente haga el truco). Un simple --header "Cookie: oraclelicense=accept-securebackup-cookie"(o --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]") parece funcionar bien. ¿Podrías confirmar esto?
Det
2
Actualización para el fresco de 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. Los --no-cookies es redundante y --no-check-certificado es necesaria sólo con Wget 1.12 y mayores, que están perdiendo el apoyo SAN (principalmente 6.x RHEL / CentOS). La versión de cURL es: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
probé el nuevo 121 verson con url download.oracle.com/otn-pub/java/jdk/8u121-b13/… pero no parece funcionar. ¿cualquier pensamiento?
Nam Nguyen
3
obtuvo el ERROR 404: No encontrado con JDK 11, ¿puede ser una URL incorrecta?
Tien Dung Tran
2
ACTUALIZADO PARA Oracle JDK 11 la solución ya no funciona
bomba
247

( Irani actualizó mi respuesta, pero aquí está para aclararlo todo ) .

Editar: actualizado para Java 11.0.1 , lanzado el 16 de octubre de 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 (sin indicadores de cookies): http://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c
Consulte las descargas en oracle.com y java.com para obtener más información.

  • -c / --continue

    Permite continuar una descarga inacabada.

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

    Desde el 15 de marzo de 2014, esta cookie se proporciona al usuario después de aceptar el Acuerdo de licencia y es necesaria para acceder a los paquetes de Java en download.oracle.com . La implementación anterior (y primera) del 27 de marzo de 2012 hizo uso de la cookie gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. Ambos casos permanecen sin anunciarse al público.

    El valor no tiene que ser " accept-securebackup-cookie".

Requerido para Wget <1.13

  • --no-check-certificate

    Solo se requiere con wget 1.12 y versiones anteriores , que no admiten certificados de Nombre alternativo del sujeto (SAN) (principalmente Red Hat Enterprise Linux 6.xy amigos, como CentOS). 1.13 fue lanzado en agosto de 2011.

    Para ver la versión actual, use: wget --version | head -1

No requerido

  • --no-cookies

    La combinación --no-cookies --header "Cookie: name=value"se menciona como el soporte de cookies " oficial ", pero aquí no se requiere estrictamente.

rizo

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

    Se requiere para que cURL redirija a través de todos los espejos.

  • -C / --continue-at -

    Véase más arriba. cURL requiere el guión ( -) al final.

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

    Igual que -H / --header "Cookie: ...", pero también acepta archivos.

  • -O

    Se requiere para que cURL guarde los archivos (consulte la comparación del autor para obtener más diferencias).

Det
fuente
2
"guión anterior" debe ser "guión siguiendo cualquiera de las formas de la opción", pero este es un resumen excelente.
Alex Dupuy
1
Bueno, lo cambié a " cURL requiere el guión ( -) al final " . Eso debería ser lo suficientemente claro, teniendo en cuenta que la otra forma de la flagya se muestra en el comando.
Det
1
probé la nueva versión 121 con url download.oracle.com/otn-pub/java/jdk/8u121-b13/… pero no parece funcionar. ¿cualquier pensamiento?
Nam Nguyen
1
Parece que no funciona para la versión anterior. No puedo descargar 8u121. Probablemente por eso Downloading these releases requires an oracle.com account. ¿Alguna solución?
ALex_hha
1
Usamos docker, es por eso que necesitamos usar una versión específica de java. Sí, puedo encontrar el archivo en algunos ftp, pero acabo de mencionar que a partir de ahora no puede descargar la versión anterior del sitio sin su cuenta
ALex_hha
35

Descargar Java desde la línea de comandos siempre ha sido problemático. Lo que he estado haciendo recientemente es usar FireFox (otros navegadores pueden funcionar) para iniciar una descarga en mi computadora portátil, pausarla (dentro de las ventanas de Descargas), usar el elemento de menú "Copiar enlace de descarga" del menú contextual que se muestra para el descargando archivo. Esta URL se puede usar en el cuadro de Linux para descargar el mismo archivo. Espero que la URL tenga poco tiempo de vida. Feo, pero generalmente exitoso.

Andrew Gilmartin
fuente
Sí ... eso funciona. Agradable. Tenía mi URL como download.oracle.com/otn-pub/java/jdk/7u9-b05/…
Mukus
3
Este es un asunto interesante pero no responde la pregunta. Hacer clic en Firefox es incompatible con "automatizar descarga".
Stéphane Gourichon
No es tan problemático (traducción: imposible) como en mis navegadores (plural) hoy. Alrededor del 10 al 20% de la entrada, el servidor de Oracle se desconectaría, dejándome con una descarga truncada. La herramienta CLI al menos reintenta desde donde se quedó, y eventualmente una de las ejecuciones se completará sin tiempo de espera / rechazo.
Roboprog
¡excelente! el parámetro de consulta AuthParamtiene algo que ver con la comprobación de Oracle si el usuario ha aceptado la Licencia o no.
pide
La única solución que funciona para mí hoy. Todos los trucos wget anteriores con el parámetro aceptar cookie no funcionaron.
Saad Benbouzid
23

Actualizado para 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

Enlaces obsoletos a continuación

Actualizado para 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

Actualizado para 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

Actualizado para 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

Actualizado para 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

Actualizado para 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
fuente
2
Este absoluto me ayudó. Para usar tar.gz simplemente tuve que cambiar el nombre de .rpm a .tar.gz
Yoraco Gonzales
19

Sé que Oracle hizo todo lo posible para que Java Runtime y Java SDK fueran lo más difíciles posible.

Aquí hay algunas guías para los amantes de la línea de comandos.

Para sistemas similares a Debian (probado en Debiansqueeze y 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: si conoce una manera mejor o más fácil de agregar un comentario, actualizaré la guía.

sorin
fuente
2
A partir del 2013-11-02, otros métodos no son fáciles de ajustar con diferentes versiones. Este método funciona sea cual sea la versión actual y se puede automatizar / programar / ejecutar sin supervisión con opciones de apt-get como "--yes".
Stéphane Gourichon
Probé este método con oracle-java8-installer con --yes, --assume-yes, --force-yesopciones, pero cada vez que la instalación quiere que acepte el acuerdo de licencia con enter-key.
Drey
9

Kit de desarrollo 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
fuente
¿Por qué --no-check-certificate? funciona bien sin ese interruptor, por lo que en términos de seguridad no debe usarse, especialmente cuando está obsoleto.
tymik
6

Oracle ha puesto una cookie de prevención en el enlace de descarga para obligarlo a aceptar los términos a pesar de que el acuerdo de licencia para usar Java establece claramente que simplemente al usar Java 'acepta' la licencia.

El método que Oracle quiere es que lo descargue con un acuerdo. Después de eso, este script puede modificarse para su Linux específico

#!/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
fuente
1
Esta respuesta asume que está utilizando Linux, y que desea instalarlo de una manera / lugar no estándar y muchas otras cosas. Una mejor respuesta sería "simplemente siga las instrucciones de instalación en el sitio web de descarga" ... a menos que esté usando Ubuntu, en cuyo caso hay otras formas de hacerlo.
Stephen C
8
¿Y cómo es extraño que la respuesta asuma Linux cuando el título de la pregunta incluye Linux? El sceipt no es de talla única dado que Linux en sí mismo no lo es. Dado que esta es mi propia respuesta a mi propia pregunta, la he probado y funcionó para mí.
thejartender
6

Para aquellos que también necesitan JCE8, también pueden descargarlo.

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
Cole Stanfield
fuente
5

Esto funciona para el JDK 6, solo necesita reemplazar la url de descarga con la última versión.

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
fuente
Esto funciona pero no pude elegir 6u48 porque la parte donde tienes 6u33-b03.
Jacob Phillips
El 02/11/2013, no podría tener esto para trabajar. Descarga una página de registro HTML en lugar del archivo.
Stéphane Gourichon
5

Este comando puede descargar el paquete jdk8 tgz ahora (06/09/2018), ¡buena suerte!

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
fuente
Intenté con otros comandos pero nada funcionó, pero este funcionó sin problemas (se ejecutó el 20 / Sep / 2019).
Otro codificador
4

En lugar de usar para cada nueva versión de Java un nuevo enlace o cambiar los scripts existentes, estaba buscando una forma más genérica para automatizar la descarga de los paquetes de Java necesarios y la instalación posterior a través de yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm .

He utilizado un enfoque trivial similar a la acción manual / del usuario para encontrar el paquete y descargarlo. También estoy bastante seguro de que se encontrará una forma más elegante de hacerlo mediante el uso de otras herramientas como egrep, awketc .., así que dejarlo como un ejemplo aquí:

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

Como los enlaces de descarga están disponibles ahora, se puede continuar con wgeto curl.

U880D
fuente
3

Todo lo anterior parece suponer que conoce la URL del último RPM de Java ...

Oracle proporciona enlaces persistentes a las últimas actualizaciones de cada versión de Java como se documenta en https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 , aunque debe crear / iniciar sesión en una cuenta de Oracle Support . * De lo contrario, solo puede acceder a la última actualización "pública" de cada versión de Java, por ejemplo, 1.6_u45 (marzo de 2013; la última actualización es u65, octubre de 2013) *

Una vez que conozca el enlace persistente, debería poder resolverlo en la descarga real; Lo siguiente funciona para mí, aunque todavía no sé si cambia la referencia "aru".

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
fuente
1
Recomiendo encarecidamente no usar --no-check-certificate al transmitir una contraseña.
Rick Moritz
3

Como ya se publicó aquí: https://stackoverflow.com/a/41718895/4370196

Actualización para JDK 8 Actualización 121

Como Oracle insertó algunos md5hash en sus enlaces de descarga, uno no puede ensamblar automáticamente un enlace de descarga para la línea de comandos.

Así que manipulé una línea de comandos de bash desagradable para obtener el último enlace de descarga de jdk, descargarlo e instalarlo directamente a través de rpm. Para todos los interesados:

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-9font>+.html' | (cabeza -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 parte en negrita debe ser reemplazada por el paquete de su agrado.

Ben Herfurth
fuente
Sí, ya no es tan fácil armar un enlace. He utilizado un enfoque similar en un script bash para obtener los últimos enlaces de descarga de JRE y JDK para las versiones 8 y 9. Se puede encontrar en este hilo como respuesta .
U880D
2

Resuelvo esto (para distribuciones Linux basadas en Debian) haciendo paquetes usando java-packagealgunas veces (para varias arquitecturas), luego distribuyéndolos internamente.

El gran lado positivo es que este método siempre funciona; no importa cuán locos se vuelvan las páginas web de Oracle. ¡Oracle ya no puede romper mi construcción!

La desventaja es que es un poco más difícil de configurar inicialmente.

  • Descargue los archivos tar.gz manualmente en un navegador ("aceptando" sus términos)
  • Ejecutar make-jpkg jdk-7u51-linux-x64.tar.gz. Esto creaoracle-java8-jdk_8_amd64.deb
  • Distribuirlo dentro de su organización

Para la distribución a través de Internet, sugiero utilizar un repositorio apto protegido por contraseña o proporcionar paquetes sin formato mediante cifrado simétrico:

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"

Por supuesto, proporcionar paquetes .deb (sin cifrar) en Internet es probablemente una violación de su acuerdo de licencia con Oracle, que establece:

... Oracle le otorga una ... licencia ... para reproducir y utilizar internamente el Software completo y sin modificaciones con el único propósito de ejecutar Programas "

En el extremo receptor, si tiene un repositorio apt protegido con contraseña, todo lo que necesita hacer es apt-get installhacerlo. Si tiene paquetes sin procesar, descárguelos, descifre y dpkg -i. ¡Funciona de maravilla!

mogsie
fuente
2
así es como se implementó honrando la licencia. Esto es increíble :-)
Kowser
2

wget Esto funcionó para mí 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
fuente
2

La respuesta aceptada no estaba funcionando para mí, a partir del 25/04/2017. Sin embargo, la solución simple era usar la -bbandera en lugar de la --headeropción.

Por ejemplo, para obtener 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

Eso se ejecutará en segundo plano, escribiendo la salida en wget-log.

ILMostro_7
fuente
1

Tratar

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 eres como yo tratando de obtener Oracle JDK 6.

fuente: descarga de Oracle JVM usando curl / wget

ssgao
fuente
1

Hice un script jdk-download (específico para tar.gz) para mis cajas gentoo. No necesita actualizarse como otras secuencias de comandos similares, tratando de descargar "fuerza bruta" la última compilación para la versión que desee.

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

Entrada en el blog

Fuente en bitbucket

Fabio Bonfante
fuente
1

oracle-java-download es un proyecto en GitHub que le permite crear enlaces de descarga para JDK 8 y JDK 9 que puede usar para un procesamiento posterior, por ejemplo, en procesos automatizados de construcción o implementación.

Requiere Linux, Docker y un JDK> = 8 para ejecutarse.

aventurina
fuente
1

Contexto

Recientemente enfrenté el mismo problema y, aunque los comentarios en esta página y en otras proporcionaron sugerencias útiles, pensé que sería bueno documentar los pasos que tomé para solucionar el problema para las personas que pueden necesitar más ayuda.

Detalles del sistema

Estoy siguiendo la configuración PNDA en AWS siguiendo la guía de instalación paso a paso de pnda en:

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

Estoy usando ubuntu 14.04 [elegible para el nivel gratuito] en la nube de AWS, y estoy ejecutando el código desde una computadora portátil con Windows 8.1 de 64 bits. Estoy usando PUTTY para conectarme a la instancia del servidor. He clonado el código pnda de https://github.com/pndaproject/pnda a la instancia de ubuntu.

Nota importante Tenga en cuenta que si planea usar la instancia de Ubuntu en AWS, asegúrese de que sea solo 14.04. Si usa la versión 16, no funciona. ¡Lo aprendí de la manera difícil!

Pasos de resolución

Como sabrían aquellos que han ido tan lejos como para haber encontrado el error que se discute aquí, el archivo de creación de espejo implica los siguientes pasos:

1) Ejecute el script create_mirror.sh [ sudo su -s ./create_mirror.sh ]para ejecutar el proceso completo de creación de espejo

2) Este script a su vez llama a otros scripts, uno de ellos es create_mirror_misc.sh ; Este script se refiere a pnda-static-file-dependencies.txtque tiene una lista de archivos para descargar.

3) En la primera línea del archivo pnda-static-file-dependencies.txt hay una referencia para descargar el archivo jdk-8u131-linux-x64.tar.gz desde http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz oraclelicense=accept-securebackup-cookie; Es en este punto que mi script estaba fallando con el mensajeFailed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) Navegué hasta la página http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gzy encontré el siguiente mensaje de error que se muestra**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5) Para resolver este problema, hice el siguiente cambio en pnda-static-file-dependencies.txt; Agregué --no-check-certificate --no-cookies para omitir la condición del acuerdo del término de licencia

6) Entonces el código revisado se ve así: 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

Espero que esto sea útil.

Stats_Lover
fuente
1

Deberías intentarlo:

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
fuente
1

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

mi blog 044-wget 下载 jdk8u221

AnJia
fuente
0

Esto sucede porque cuando hace clic en el botón "Aceptar" en la página de descarga de su navegador, la página web guarda una cookie que utiliza para verificar su acuerdo antes de permitirle descargar el archivo. El problema se produce al intentar descargar desde la línea de comandos usando wget y es porque no se envía información de cookies con la solicitud de wget para descargar el archivo, por lo que desde la perspectiva del servidor de archivos, eres un usuario completamente nuevo que no ha aceptado la licencia acuerdo.

Una solución es enviar información de cookies utilizando la opción --header de la utilidad wget (como se muestra arriba en otras respuestas). Idealmente, si algún contenido está protegido, usaría las diversas opciones de administración de sesión disponibles con wget. Sin embargo, para este problema en particular, se resuelve (actualmente) enviando el Cookieencabezado con la solicitud de descarga.

Krishnakeshan
fuente
Cuando haces clic en "Aceptar" y tomas la URL de esa página, te dirige en http://download.oracle.com/otn/java/...lugar de http://download.oracle.com/otn-pub/java/...simplemente cambiar /otn/a/otn-pub/
T.CK
0

Aquí le mostramos cómo obtener el comando usted mismo. Esto funciona para cualquier versión:

  1. Acceda a la página de paquetes aquí: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. Haga clic en el enlace de descarga para su paquete deseado
  3. Marque la casilla que indica que ha "revisado y aceptado ..."
  4. Haga clic derecho y copie la dirección del enlace desde el botón
  5. Pegue en un editor de texto y luego copie todo DESPUÉS de 'nexturl =', comenzando con 'https: //'
  6. Actualice la URL de descarga en este comando y debería estar listo:

    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

Para explicar mejor el wget, --no-check-certificate debe ser lo suficientemente claro, pero el contenido del encabezado (para cualquier llamada) se puede descubrir usando la pestaña de red de herramientas de desarrollador en su navegador. Las herramientas de desarrollo son potentes y vale la pena aprender. Disfrutar.

Alex Atkinson
fuente
0

La respuesta @eric hizo el truco para mí, debe aceptar los términos en el comando que está configurando, es decir

"Cookie: oraclelicense=accept-securebackup-cookie"

entonces su comando final se ve así

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

Puede decidir actualizar la versión cambiando 8u131a 8uXXX. tanto tiempo está disponible en el repositorio.

El hombre muerto
fuente
-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
fuente
-4

¿Por qué no hacer clic para descargar desde su navegador y luego copiar y pegar el enlace exacto donde se descargó, por ejemplo:

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

Puede encontrar el enlace mirando la pestaña de red de su navegador después de aceptar los términos en Oracle y hacer clic para descargar. F12 en cromo. Firebug en Firefox.

Jacktrades
fuente
1
Porque la gente necesita esto para la instalación automática de Java en servidores con scripts bash.
Saša Šijak