O download do Java JDK no Linux via wget é mostrado na página de licença

615

Quando tento baixar o Java do Oracle, acabo baixando uma página dizendo que preciso concordar com os termos de licença da OTN.

Desculpa!

Para fazer o download de produtos da Oracle Technology Network, você deve concordar com os termos da licença OTN.

Tenha certeza disso...

  • Seu navegador tem "cookies" e JavaScript habilitados.
  • Você clicou em "Aceitar licença" para o produto que deseja baixar.
  • Você tenta fazer o download dentro de 30 minutos após a aceitação da licença.

Como posso baixar e instalar o Java?

thejartender
fonte
Esta questão é um tópico sobre como os desenvolvedores instalam kits de desenvolvimento. Reabri-lo por esse motivo.
George Stocker

Respostas:

1659

ATUALIZADO 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

ATUALIZADO 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

ATUALIZADO 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

ATUALIZADO PARA JDK 9 , parece que você pode baixá-lo agora diretamente do java.net sem enviar um cabeçalho

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

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

ATUALIZADO 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

Em todos os casos acima, substitua 'i586' por 'x64' para baixar a compilação de 32 bits.

  • -j -> cookies indesejados
  • -k -> ignorar certificados
  • -L -> seguir redirecionamentos
  • -H [arg] -> cabeçalhos

curlpode ser usado no lugar de wget.

ATUALIZAÇÃO 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

Mais uma vez, especifique o URL correto para a versão que você está baixando. Você pode encontrar o URL aqui: site de download do Oracle JDK

RESPOSTA ORIGINAL DE 9 DE JUNHO DE 2012

Se você deseja baixar o Oracle JDK a partir da linha de comando wget, existe uma solução alternativa. Execute o wgetcomando da seguinte maneira:

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"

Substitua o link de download pelo link correto para a versão que você está baixando.

Eric Kamara
fonte
6
(Talvez esse reinado de milionésimo finalmente faça o truque.) Um simples --header "Cookie: oraclelicense=accept-securebackup-cookie"(ou --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]") parece funcionar bem. Você poderia confirmar isso?
Det
2
Atualização para o novo 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. O --no-cookies é redundante e o --no-check-certificate é necessário apenas no Wget 1.12 e versões mais antigas, que não possuem suporte à SAN (principalmente RHEL / CentOS 6.x). A versão do 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
Eu tentei o novo 121 verson com url download.oracle.com/otn-pub/java/jdk/8u121-b13/…, mas ele não parece funcionar. algum pensamento?
Nam Nguyen
3
obteve o erro 404: não encontrado com o JDK 11, pode ser um URL incorreto?
Tien Dung Tran
2
ATUALIZADO PARA Oracle JDK 11 solução não funciona mais
bomba
247

( Irani atualizado para a minha resposta, mas aqui está para esclarecer tudo. )

Edit: Atualizado para Java 11.0.1 , lançado em 16 de outubro 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 (sem sinalizadores de cookie): http://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c
Veja os downloads em oracle.com e java.com para obter mais informações.

  • -c / --continue

    Permite continuar um download inacabado.

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

    Desde 15 de março de 2014, este cookie é fornecido ao usuário após a aceitação do Contrato de Licença e é necessário para acessar os pacotes Java em download.oracle.com . A implementação anterior (e a primeira) em 27 de março de 2012 fez uso do cookie gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. Ambos os casos permanecem sem aviso prévio ao público.

    O valor não precisa ser " accept-securebackup-cookie".

Necessário para Wget <1,13

  • --no-check-certificate

    Requerido apenas com o wget 1.12 e versões anteriores , que não oferecem suporte a certificados Subject Alternative Name (SAN) (principalmente Red Hat Enterprise Linux 6.xe amigos, como o CentOS). 1.13 foi lançado em agosto de 2011.

    Para ver a versão atual, use: wget --version | head -1

Não requerido

  • --no-cookies

    A combinação --no-cookies --header "Cookie: name=value"é mencionada como o suporte " oficial " ao cookie, mas não é estritamente necessário aqui.

ondulação

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

    Necessário para o cURL redirecionar através de todos os espelhos.

  • -C / --continue-at -

    Veja acima. cURL requer o hífen ( -) no final.

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

    O mesmo que -H / --header "Cookie: ...", mas também aceita arquivos.

  • -O

    Necessário para o cURL salvar arquivos (consulte a comparação do autor para obter mais diferenças).

Det
fonte
2
"traço anterior" deve ser "traço seguindo qualquer forma da opção", mas esta é uma excelente sumarização.
AlexDupuy
1
Bem, mudei para " cURL exige o dash ( -) no final " . Isso deve ficar claro o suficiente, considerando como a outra forma do flagjá é mostrada no comando.
Det
1
Eu tentei a nova versão 121 com o url download.oracle.com/otn-pub/java/jdk/8u121-b13/…, mas parece não funcionar. algum pensamento?
Nam Nguyen
1
Parece que não funciona para a versão antiga. Não consigo baixar o 8u121. Provavelmente por causa de Downloading these releases requires an oracle.com account. Alguma solução alternativa?
ALex_hha
1
Usamos o docker, é por isso que precisamos usar uma versão específica do java. Sim, eu posso encontrar o arquivo em algum ftp, mas eu acabei de mencionar que a partir de agora você não pode baixar a versão anterior do site sem a sua conta
ALex_hha
35

Baixar Java a partir da linha de comando sempre foi problemático. O que tenho feito recentemente é usar o FireFox (outros navegadores podem funcionar) para iniciar um download no meu laptop, pausá-lo (nas janelas de downloads), usar o item de menu "Copiar link de download" do menu de contexto exibido para o download de arquivo. Esse URL pode ser usado na caixa Linux para baixar o mesmo arquivo. Espero que o URL tenha pouco tempo de vida. Feio, mas geralmente bem sucedido.

Andrew Gilmartin
fonte
Sim .. isso funciona. Agradável. Eu tive a minha url como download.oracle.com/otn-pub/java/jdk/7u9-b05/...
Mukus
3
Este é um assunto interessante, mas não responde à pergunta. Clicar no FireFox é incompatível com "automatizar o download".
Stéphane Gourichon
Não é tão problemático (tradução: impossível) como nos meus navegadores (plural) hoje. Cerca de 10 a 20% do caminho, o servidor da Oracle se desconectaria, deixando-me com um download truncado. A ferramenta CLI pelo menos tenta de onde parou e, eventualmente, uma das execuções será concluída sem tempo limite / rejeição.
Roboprog
excelente! o parâmetro de consulta AuthParamtem algo a ver com o Oracle, verificando se o usuário concordou em licenciar ou não.
ASGs
única solução trabalhando para mim hoje. Todos os truques do wget acima com o parâmetro de cookie de aceitação não funcionaram.
Saad Benbouzid
23

Atualizado para o 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

Links desatualizados abaixo

Atualizado para o 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

Atualizado para o 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

Atualizado para o 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

Atualizado para o 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

Atualizado para o 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
fonte
2
Esse absoluto me ajudou. Para usar o tar.gz eu simplesmente tinha que mudar o nome .rpm para .tar.gz
Yoraco Gonzales
19

Eu sei que a Oracle fez todo o possível para tornar o Java Runtime e o Java SDK o mais difícil possível.

Aqui estão alguns guias para os amantes da linha de comando.

Para sistemas do tipo Debian (testado no 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 você souber uma maneira melhor ou mais fácil de adicionar um comentário, atualizarei o guia.

sorin
fonte
2
A partir de 02/11/2013, outros métodos não são fáceis de ajustar com versões diferentes. Este método funciona independentemente da versão atual e pode ser automatizado / com script / executado sem supervisão com opções apt-get como "--yes".
Stéphane Gourichon
Tentei esse método com o oracle-java8-installer com --yes, --assume-yes, --force-yesopções, mas sempre que a instalação quer que eu aceite o contrato de licença com a tecla enter.
Drey
9

Kit de Desenvolvimento 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
fonte
por que --no-check-certificate? funciona bem sem essa opção, portanto, em termos de segurança, não deve ser usado, principalmente quando está obsoleto.
tymik
6

A Oracle colocou um cookie de prevenção no link de download para forçá-lo a concordar com os termos, embora o contrato de licença para usar Java indique claramente que, ao usar Java, você 'concorda' com a licença.

O método que a Oracle deseja é fazer o download com um contrato. Depois disso, esse script poderá ser modificado para o seu 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
fonte
1
Esta resposta pressupõe que você esteja usando o Linux e que deseja instalá-lo de uma maneira / local não padrão e várias outras coisas. Uma resposta melhor seria "basta seguir as instruções de instalação no site de download" ... a menos que você esteja usando o Ubuntu; nesse caso, existem outras maneiras de fazê-lo.
Stephen C
8
E como é estranho que a resposta assuma o Linux quando o título da pergunta inclui o Linux? O reconhecimento não é adequado para todos, já que o Linux em si não é assim. Dado que esta é a minha própria resposta à minha própria pergunta, testei-a e funcionou para mim.
thejartender
6

Para aqueles que precisam do JCE8 também, você pode fazer o download também.

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
fonte
5

Isso funciona para o JDK 6, você só precisa substituir o URL de download pela versão mais recente.

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
fonte
Isso funciona, mas eu não pude escolher 6u48 porque a parte em que você tem 6u33-b03.
Jacob Phillips
Em 02/11/2013, não foi possível que isso funcionasse. Faz o download de uma página de registro HTML em vez do arquivo.
Stéphane Gourichon
5

Este comando pode baixar o pacote jdk8 tgz agora (06-09-2018), boa sorte!

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
fonte
Eu tentei o comando de outros, mas nada funcionou, mas este funcionou sem problemas (executado em 20 / set / 2019).
Outro codificador
4

Em vez de usar para cada nova versão Java um novo link ou alterar os scripts existentes, eu estava procurando uma maneira mais genérica de automatizar o download dos pacotes Java necessários e a instalação posterior via yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm .

Eu usei uma abordagem de alguma forma trivial semelhante à ação manual / usuário para encontrar o pacote e fazer o download. Também estou bastante certo de que encontrará uma maneira mais elegante de fazer isso usando outras ferramentas como egrep, awk, etc .., então deixá-lo como um exemplo aqui:

#!/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 os links para download estão disponíveis agora, é possível prosseguir com wgetou curl.

U880D
fonte
3

Todas as opções acima parecem assumir que você conhece a URL do Java RPM mais recente ...

A Oracle fornece links persistentes para as atualizações mais recentes de cada versão Java, conforme documentado em https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 - embora você precise criar / fazer login em uma conta de Suporte Oracle . * Caso contrário, você poderá acessar apenas a última atualização "pública" de cada versão do Java, por exemplo, 1.6_u45 (março de 2013; a atualização mais recente é u65, outubro de 2013) *

Depois de conhecer o link persistente, você poderá resolvê-lo para o download real; O seguinte funciona para mim, embora ainda não saiba se a referência "aru" é alterada.

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
fonte
1
Eu recomendo fortemente que não use --no-check-certificate ao transmitir uma senha.
Rick Moritz
3

Como já publicado aqui: https://stackoverflow.com/a/41718895/4370196

Atualização para JDK 8 Update 121

Como o Oracle inseriu algum md5hash em seus links de download, não é possível montar automaticamente um link de download para a linha de comando.

Então, consertei uma linha de comando desagradável do bash para obter o último link de download do jdk, baixá-lo e instalar diretamente via rpm. Para todos os interessados:

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' | (cabeça-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 '"caminho do arquivo": "[^"] + 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

A parte em negrito deve ser substituída pelo pacote de sua preferência.

Ben Herfurth
fonte
Sim, não é mais tão fácil montar um link. Usei uma abordagem semelhante em um script bash para obter os links de download mais recentes do JRE e JDK para as versões 8 e 9. Ele pode ser encontrado neste tópico como resposta .
U880D
2

Eu resolvo isso (para distribuições Linux baseadas no Debian) criando pacotes usando java-packagealgumas vezes (para várias arquiteturas) e depois distribuindo-os internamente.

O grande lado positivo é que esse método sempre funciona; não importa o quão loucas as páginas da Web da Oracle se tornem. O Oracle não pode mais quebrar minha compilação!

A desvantagem é que é um pouco mais trabalhoso configurar inicialmente.

  • Faça o download dos arquivos tar.gz manualmente em um navegador ("aceitando" seus termos)
  • Corra make-jpkg jdk-7u51-linux-x64.tar.gz. Isso criaoracle-java8-jdk_8_amd64.deb
  • Distribua na sua organização

Para distribuição na Internet, sugiro usar um repositório apt protegido por senha ou fornecer pacotes brutos usando criptografia simétrica:

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"

É claro que o fornecimento de pacotes .deb (não criptografados) na Internet provavelmente é uma violação do seu contrato de licença com a Oracle, que declara:

... A Oracle concede a você ... licença ... para reproduzir e usar internamente o Software completo e não modificado com o único objetivo de executar Programas "

No lado de recebimento, se você tiver um repositório protegido por senha, tudo que você precisa fazer é apt-get installisso. Se você tiver pacotes brutos, faça o download, descriptografe e dpkg -ieles. Funciona como um encanto!

mogsie
fonte
2
então foi assim que foi implementado honrando a licença. Esta é :-) incrível
Kowser
2

wget Isso funcionou para mim 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
fonte
2

A resposta aceita não estava funcionando para mim em 25/04/2017. No entanto, a solução simples era usar a -bbandeira em vez do--header opção.

Por exemplo, para obter o 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

Isso será executado em segundo plano, escrevendo a saída para wget-log.

ILMostro_7
fonte
1

Tentar

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 você é como eu tentando obter o Oracle JDK 6.

fonte: download do Oracle JVM usando curl / wget

ssgao
fonte
1

Eu criei um script jdk-download (específico para o tar.gz) para minhas caixas do gentoo. Não precisa ser atualizado como outros scripts semelhantes, tentando fazer "força bruta" para baixar a versão mais recente para a versão desejada.

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

Postagem no blog

Fonte no bitbucket

Fabio Bonfante
fonte
1

O oracle-java-download é um projeto no GitHub que permite criar links de download para o JDK 8 e JDK 9, que você pode usar para processamento adicional, por exemplo, em processos automatizados de compilação ou implantação.

Requer o Linux, Docker e um JDK> = 8 para ser executado.

aventurina
fonte
1

Contexto

Recentemente, enfrentei o mesmo problema e, embora os comentários nesta página e em alguns outros tenham fornecido dicas úteis - pensei que seria bom documentar as etapas que eu tomei para corrigir o problema para pessoas que precisam de mais ajuda.

Detalhes do sistema

Estou seguindo o PNDA configurado na AWS seguindo o guia de instalação passo a passo do pnda em:

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

Estou usando o ubuntu 14.04 [nível gratuito elegível] na nuvem da AWS e estou executando o código do laptop windows8.1 de 64 bits. Estou usando PUTTY para conectar-se à instância do servidor. Git clonou o código pnda de https://github.com/pndaproject/pnda para a instância do ubuntu.

Nota importante Observe que, se você planeja usar a instância do Ubuntu na AWS, verifique se é apenas 14.04. Se você usar a versão 16, não funcionará. Eu aprendi da maneira mais difícil!

Etapas de resolução

Como aqueles que chegaram ao ponto de encontrar o erro discutido aqui saberiam - o arquivo de criação de espelhos envolve as seguintes etapas -

1) Execute o script create_mirror.sh [ sudo su -s ./create_mirror.sh ]para executar o processo completo de criação de espelhos

2) Este script, por sua vez, chama vários outros scripts - um deles sendo create_mirror_misc.sh ; esse script refere-se ao pnda-static-file-dependencies.txtqual possui uma lista de arquivos a serem baixados.

3) Na primeira linha do arquivo pnda-static-file-dependencies.txt, há uma referência para baixar o arquivo 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; É nesse ponto que meu script estava falhando com a mensagemFailed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) Naveguei até a página http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gze encontrei a seguinte mensagem de erro exibida**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5) Para resolver esse problema, fiz a seguinte alteração no pnda-static-file-dependencies.txt ; Adicionei --no-check-certificate --no-cookies para ignorar a condição do contrato de termo de licença

6) Portanto, o código revisado se parece com - 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 isto seja útil.

Stats_Lover
fonte
1

Você deveria tentar:

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

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

meu blog 044-wget 下载 jdk8u221

AnJia
fonte
0

Isso acontece porque quando você clica no botão "Aceitar" na página de download do seu navegador, a página da Web salva um cookie que ele usa para verificar seu contrato antes de permitir o download do arquivo. O problema ocorre ao tentar fazer o download na linha de comando usando o wget e é porque não há informações sobre cookies enviadas com a solicitação do wget para fazer o download do arquivo. Da perspectiva do servidor de arquivos, você é um usuário completamente novo que não aceitou a licença acordo.

Uma solução é enviar informações sobre cookies usando a opção --header do utilitário wget (como mostrado acima em outras respostas). Idealmente, se algum conteúdo estiver protegido, você usaria as várias opções de gerenciamento de sessões disponíveis no wget. Porém, para esse problema específico, ele é resolvido (atualmente) enviando o Cookiecabeçalho com a solicitação de download.

Krishnakeshan
fonte
Quando você clica em "Aceitar" e pega o URL dessa página, ele o direciona para, em http://download.oracle.com/otn/java/...vez de http://download.oracle.com/otn-pub/java/...Apenas mudar /otn/para/otn-pub/
T.CK
0

Veja como obter o comando você mesmo. Isso funciona para qualquer versão:

  1. Acesse a página de pacotes aqui: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. Clique no link de download do pacote desejado
  3. Marque a caixa indicando que você "revisou e aceita ..."
  4. Clique com o botão direito do mouse e copie o endereço do link no botão
  5. Cole em um editor de texto e copie tudo DEPOIS de 'nexturl =', começando com 'https: //'
  6. Atualize a URL de download neste comando e você deve começar:

    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 melhor o wget, o --no-check-certificate deve ser suficientemente claro, mas o conteúdo do cabeçalho (para qualquer chamada) pode ser descoberto usando a guia Rede de Ferramentas do Desenvolvedor no seu navegador. As ferramentas do desenvolvedor são poderosas e valem a pena aprender. Aproveitar.

Alex Atkinson
fonte
0

resposta @eric fez o truque para mim, você precisa aceitar termos no comando que você está definindo ou seja

"Cookie: oraclelicense=accept-securebackup-cookie"

então seu comando final parece assim

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

Você pode decidir atualizar a versão alterando 8u131para 8uXXX. desde que esteja disponível no repositório.

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

Por que não clicar para fazer o download no seu navegador e copiar e colar o link exato em que foi baixado, por exemplo:

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

Você pode descobrir o link consultando a guia de rede do seu navegador depois de aceitar os termos no oracle e clicar para fazer o download. F12 no Chrome. Firebug no Firefox.

jacktrades
fonte
1
Porque as pessoas precisam disso para instalação automática de java em servidores com scripts bash.
Saša Šijak