Pobieranie JDK Java na Linuksa za pomocą wget pokazuje stronę licencji


615

Kiedy próbuję pobrać Javę z Oracle, zamiast tego pobieram stronę z informacją, że muszę wyrazić zgodę na warunki licencji OTN.

Przepraszam!

Aby pobierać produkty z Oracle Technology Network, musisz wyrazić zgodę na warunki licencji OTN.

Być pewnym że...

  • Twoja przeglądarka ma włączoną obsługę plików cookie i JavaScript.
  • Kliknąłeś „Akceptuj licencję” dla produktu, który chcesz pobrać.
  • Próbujesz pobrać w ciągu 30 minut od zaakceptowania licencji.

Jak mogę pobrać i zainstalować Javę?


To pytanie dotyczy tematu, w jaki sposób programiści instalują zestawy programistyczne. Z tego powodu ponownie go otwieram.
George Stocker

Odpowiedzi:


1657

AKTUALIZACJA DLA 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

AKTUALIZACJA DLA 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

AKTUALIZACJA DLA 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

ZAKTUALIZOWANO DLA JDK 9 wygląda na to, że możesz go teraz pobrać bezpośrednio z java.net bez wysyłania nagłówka

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

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

AKTUALIZACJA DLA 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 za pomocą 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

We wszystkich powyższych przypadkach wpisz „i586” zamiast „x64”, aby pobrać kompilację 32-bitową.

  • -j -> niepotrzebne pliki cookie
  • -k -> ignoruj ​​certyfikaty
  • -L -> śledź przekierowania
  • -H [arg] -> nagłówki

curl może być używany zamiast wget .

AKTUALIZACJA DLA 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 za pomocą 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

Ponownie upewnij się, że podałeś poprawny adres URL dla pobieranej wersji. Adres URL można znaleźć tutaj: witryna pobierania Oracle JDK

ORYGINALNA ODPOWIEDŹ Z DNIA 9 czerwca 2012 r

Jeśli chcesz pobrać Oracle JDK z wiersza polecenia przy użyciu wget, istnieje obejście. Uruchom wgetpolecenie w następujący sposób:

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"

Pamiętaj, aby zastąpić link do pobierania odpowiednim linkiem do pobieranej wersji.


6
(Może to zillionth repost w końcu załatwi sprawę) . Prosty --header "Cookie: oraclelicense=accept-securebackup-cookie"(lub --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]") wydaje się działać dobrze. Czy możesz to potwierdzić?
Det

2
Aktualizacja dla świeżej 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. W --no-cookies jest zbędny i --no-check-certyfikat jest konieczne tylko z Wget 1.12 i starszych, które są brakującym wsparcie SAN (głównie RHEL / CentOS 6.x). Wersja cURL to: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
próbowałem nowego 121 verson z url download.oracle.com/otn-pub/java/jdk/8u121-b13/... ale to nie działa. jakiekolwiek myśli?
Nam Nguyen

3
dostał BŁĄD 404: Nie znaleziono z JDK 11, może być nieprawidłowy adres URL?
Tien Dung Tran

2
AKTUALIZACJA DLA Oracle Rozwiązanie JDK 11 już nie działa
bomba

247

( Irani zaktualizował moją odpowiedź, ale tutaj wszystko wyjaśnię. )

Edycja: Zaktualizowana dla Java 11.0.1 , wydana w 16 października 2018 r

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 (bez flag cookie): http://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c
Aby uzyskać więcej informacji, pobierz pliki do pobrania w witrynie oracle.com i java.com .

  • -c / --continue

    Pozwala na kontynuowanie niedokończonego pobierania.

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

    Od 15 marca 2014 r. Ten plik cookie jest udostępniany użytkownikowi po zaakceptowaniu umowy licencyjnej i jest niezbędny do uzyskania dostępu do pakietów Java w download.oracle.com . Poprzednie (i pierwsze) wdrożenie 27 marca 2012 r. Wykorzystywało plik cookie gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. Oba przypadki pozostają niezapowiedziane publicznie.

    Wartość nie musi być „ accept-securebackup-cookie”.

Wymagane dla Wget <1.13

  • --no-check-certificate

    Wymagane tylko w przypadku wget 1.12 i wcześniejszych , które nie obsługują certyfikatów alternatywnej nazwy podmiotu (SAN) (głównie Red Hat Enterprise Linux 6.x i przyjaciół, takich jak CentOS). Wersja 1.13 została wydana w sierpniu 2011 roku.

    Aby zobaczyć aktualną wersję, użyj: wget --version | head -1

Nie wymagane

  • --no-cookies

    Kombinacja --no-cookies --header "Cookie: name=value"jest wymieniona jako „ oficjalna ” obsługa plików cookie, ale nie jest tutaj bezwzględnie wymagana.

kędzior

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

    Wymagane, aby cURL przekierowywał przez wszystkie mirrory.

  • -C / --continue-at -

    Patrz wyżej. cURL wymaga na końcu kreski ( -).

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

    Taki sam jak -H / --header "Cookie: ...", ale akceptuje także pliki.

  • -O

    Wymagane dla cURL do zapisywania plików (więcej informacji można znaleźć w porównaniu autora ).


2
„poprzedzający myślnik” powinien być „myślnikiem po dowolnej formie opcji”, ale jest to doskonałe podsumowanie.
Alex Dupuy,

1
Cóż, zmieniłem to na „ cURL wymaga na końcu kreski ( -). To powinno być wystarczająco jasne, biorąc pod uwagę, jak inna forma flagjest już pokazana w poleceniu.
Det

1
wypróbowałem nową wersję 121 z adresem URL download.oracle.com/otn-pub/java/jdk/8u121-b13/…, ale nie działa. jakiekolwiek myśli?
Nam Nguyen

1
Wygląda na to, że nie działa dla starej wersji. Nie mogę pobrać 8u121. Prawdopodobnie z powodu Downloading these releases requires an oracle.com account. Jakieś obejście?
ALex_hha

1
Używamy dokera, dlatego musimy używać konkretnej wersji Java. Tak, mogę znaleźć plik na ftp, ale właśnie wspomniałem, że od teraz nie możesz pobrać poprzedniej wersji z witryny bez ich konta
ALex_hha

35

Pobieranie Javy z wiersza poleceń zawsze było kłopotliwe. To, co robiłem realnie, to użycie FireFox (inne przeglądarki mogą działać), aby rozpocząć pobieranie na moim laptopie, wstrzymać (w oknie pobierania), użyć elementu menu „Kopiuj łącze pobierania” menu kontekstowego wyświetlanego dla pobieranie pliku. Tego adresu URL można następnie użyć w systemie Linux, aby pobrać ten sam plik. Oczekuję, że URL ma krótki czas życia. Brzydki, ale ogólnie udany.


Tak .. to działa. Miły. Miałem swój adres URL jak download.oracle.com/otn-pub/java/jdk/7u9-b05/…
Mukus,

3
To interesująca sprawa, ale nie odpowiada na pytanie. Kliknięcie FireFox jest niezgodne z „automatycznym pobieraniem”.
Stéphane Gourichon

Nie tak kłopotliwe (tłumaczenie: niemożliwe) jak w moich przeglądarkach (liczba mnoga) dzisiaj. Około 10 do 20% czasu wejścia serwer Oracle się rozłączył, pozostawiając mi obcięte pobieranie. Narzędzie CLI przynajmniej ponawia próbę od miejsca, w którym zostało przerwane, a ostatecznie jeden z przebiegów zostanie zakończony bez przekroczenia limitu czasu / odrzucenia.
Roboprog,

świetny! parametr zapytania AuthParamma coś wspólnego z Oracle sprawdzającym, czy użytkownik zgodził się na licencję, czy nie.
asgs

jedyne rozwiązanie, które działa dla mnie dzisiaj. Wszystkie powyższe sztuczki wget z parametrem akceptowania ciasteczek nie działały.
Saad Benbouzid

23

Zaktualizowano dla 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

Nieaktualne linki poniżej

Zaktualizowano dla 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

Zaktualizowano dla 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

Zaktualizowano dla 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

Zaktualizowano dla 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

Zaktualizowano dla JDK 8u121 RPM

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


2
Ten absolut pomógł mi. Aby użyć tar.gz, po prostu musiałem zmienić nazwę .rpm na .tar.gz
Yoraco Gonzales

19

Wiem, że Oracle uczyniło wszystko, co możliwe, aby ich środowisko Java Runtime i Java SDK były tak trudne, jak to możliwe.

Oto kilka wskazówek dla miłośników wiersza poleceń.

Dla systemów podobnych do Debiana (testowane na Debiansqueeze i 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

Uwaga: jeśli znasz lepszy lub łatwiejszy sposób dodać komentarz, zaktualizuję przewodnik.


2
Od 02.11.2013 inne metody nie są łatwe do dostosowania w różnych wersjach. Ta metoda działa niezależnie od aktualnej wersji i może być zautomatyzowana / skryptowana / uruchamiana bez nadzoru z opcjami apt-get, takimi jak „--yes”.
Stéphane Gourichon

Wypróbowałem tę metodę z instalatorem oracle-java8 z --yes, --assume-yes, --force-yesopcjami, ale za każdym razem instalacja wymaga akceptacji umowy licencyjnej z enter-key.
Drey

9

Java SE Development Kit 12.0.2

TAR.GZ

wget  --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/12.0.2+10/e482c34c86bd4bf8b56c0b35558996b9/jdk-12.0.2_linux-x64_bin.tar.gz

dlaczego --no-check-certificate? bez tego przełącznika działa dobrze, więc pod względem bezpieczeństwa nie należy go używać, zwłaszcza gdy jest przestarzały.
tymik


6

Firma Oracle umieściła plik cookie zapobiegawczy w łączu do pobierania, aby zmusić użytkownika do wyrażenia zgody na warunki, mimo że umowa licencyjna na korzystanie z oprogramowania Java wyraźnie stanowi, że jedynie za pomocą oprogramowania Java „zgadzasz się” na licencję.

Metodą, której chce Oracle, jest pobranie jej na podstawie umowy. Następnie skrypt ten można zmodyfikować dla konkretnego systemu Linux

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

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

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

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

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

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

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

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

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

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

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


exit 0

1
Ta odpowiedź zakłada, że ​​korzystasz z Linuksa i chcesz go zainstalować w niestandardowy sposób / miejscu oraz kilka innych rzeczy. Lepszą odpowiedzią byłoby „po prostu postępuj zgodnie z instrukcjami instalacji na stronie pobierania” ... chyba że używasz Ubuntu, w którym to przypadku istnieją inne sposoby.
Stephen C

8
A jak to dziwne, że odpowiedź zakłada Linuksa, gdy tytuł pytania zawiera Linuksa? Scenariusz nie jest uniwersalny, biorąc pod uwagę, że sam Linux nie jest taki. Biorąc pod uwagę, że jest to moja własna odpowiedź na moje pytanie, przetestowałem ją i zadziałało dla mnie.
thejartender

6

Również dla tych, którzy potrzebują JCE8, możesz to pobrać.

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

Lub

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

5

Działa to w przypadku JDK 6, wystarczy zastąpić adres URL pobierania najnowszą wersją.

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

To działa, ale nie mogłem wybrać 6u48, ponieważ część, w której masz 6u33-b03.
Jacob Phillips

02.02.2013 nie mógł mieć tego do pracy. Pobiera stronę rejestracji HTML zamiast pliku.
Stéphane Gourichon

5

to polecenie może teraz pobrać pakiet jdk8 tgz (06.09.2018), powodzenia!

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"

Próbowałem innych poleceń, ale nic nie działało, ale ten działał płynnie (uruchomiony 20 września / 2019).
Kolejny koder

4

Zamiast używać do każdej nowej wersji Java nowego łącza lub zmieniać istniejące skrypty, szukałem bardziej ogólnego sposobu zautomatyzowania pobierania wymaganych pakietów Java, a następnie instalacji za pośrednictwem yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm .

Użyłem w jakiś sposób trywialnego podejścia podobnego do ręcznego / działania użytkownika, aby znaleźć pakiet i go pobrać. Jestem też pewien, że będzie znaleźć bardziej elegancki sposób to zrobić przy użyciu innych narzędzi, takich jak egrep, awkitd .., więc zostaw go jako przykład tutaj:

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

Ponieważ linki do pobierania są już dostępne, można przejść dalej za pomocą wgetlub curl.


3

Wszystkie powyższe wydają się zakładać, że znasz adres URL najnowszej wersji Java RPM ...

Oracle zapewnia trwałe łącza do najnowszych aktualizacji każdej wersji Java zgodnie z dokumentacją na https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 - chociaż musisz utworzyć / zalogować się na konto Oracle Support . * W przeciwnym razie możesz uzyskać dostęp tylko do ostatniej „publicznej” aktualizacji każdej wersji Java, np. 1.6_u45 (marzec 2013; Najnowsza aktualizacja to u65, październik 2013) *

Gdy poznasz stały link, powinieneś być w stanie rozwiązać go do rzeczywistego pobrania; Poniższe działa dla mnie, choć nie wiem jeszcze, czy zmieni się odniesienie do „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.

1
Zdecydowanie odradzam korzystanie z opcji --no-check-certificate podczas przesyłania hasła.
Rick Moritz

3

Jak już napisano tutaj: https://stackoverflow.com/a/41718895/4370196

Aktualizacja dla JDK 8 Update 121

Ponieważ Oracle wstawiło trochę md5hash w swoich linkach do pobrania, nie można automatycznie skompletować linku do pobrania dla wiersza poleceń.

Więc majstrowałem w paskudnej linii poleceń bash, aby uzyskać najnowszy link do pobrania jdk, pobrać go i zainstalować bezpośrednio przez rpm. Dla wszystkich zainteresowanych:

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' | (head -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 '"ścieżka pliku::" [^ "] + 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

Pogrubiona część powinna zostać zastąpiona przez pakiet własnych upodobań.


Tak, nie jest już tak łatwo złożyć link. Użyłem podobnego podejścia w skrypcie bash, aby uzyskać najnowsze łącza pobierania JRE i JDK dla wersji 8 i 9. Można znaleźć w tym wątku jako odpowiedź .
U880D

2

Rozwiązuję to (dla dystrybucji Linuksa opartych na Debianie), tworząc pakiety przy użyciu java-package kilka razy (dla różnych architektur), a następnie dystrybuując je wewnętrznie.

Dużą zaletą jest to, że ta metoda zawsze działa; bez względu na to, jak szalone stają się strony internetowe Oracle. Oracle nie może już złamać mojej wersji!

Minusem jest to, że początkowo wymaga nieco więcej pracy.

  • Pobierz pliki tar.gz ręcznie w przeglądarce („akceptując” ich warunki)
  • Biegać make-jpkg jdk-7u51-linux-x64.tar.gz . To tworzyoracle-java8-jdk_8_amd64.deb
  • Rozpowszechnij go w swojej organizacji

Do dystrybucji przez Internet sugeruję użycie repozytorium apt chronionego hasłem lub dostarczenie surowych pakietów przy użyciu szyfrowania symetrycznego:

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"

Oczywiście udostępnianie (niezaszyfrowanych) pakietów .deb w Internecie jest prawdopodobnie naruszeniem umowy licencyjnej z firmą Oracle, która stwierdza:

... Oracle udziela ... licencji ... na reprodukowanie i wewnętrzne korzystanie z Oprogramowania kompletnego i niezmodyfikowanego wyłącznie w celu uruchamiania Programów ”

Po stronie odbierającej, jeśli masz apt repo chroniony hasłem, wszystko, co musisz zrobić, to zrobić apt-get install. Jeśli masz surowe pakiety, pobierz je, odszyfruj i dpkg -ije. Działa jak marzenie!


2
więc w ten sposób wdrożono honorowanie licencji. To jest niesamowite :-)
Kowser

2

wget To działało dla mnie JDK8

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

2

Przyjęta odpowiedź nie działała dla mnie na dzień 25.04.2017. Jednak prostym rozwiązaniem było użycie -bflagi zamiast --headeropcji.

Na przykład, aby uzyskać 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

To uruchomi się w tle, zapisując dane wyjściowe do wget-log.


1

Próbować

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

jeśli jesteś podobny do mnie, próbując zdobyć Oracle JDK 6.

źródło: pobieranie Oracle JVM za pomocą curl / wget


1

Stworzyłem skrypt pobierania jdk (specyficzny dla tar.gz) dla moich urządzeń Gentoo. Nie musi być aktualizowany jak inne podobne skrypty, próbując „brutalnie” pobrać najnowszą wersję dla dowolnej wersji.

STOSOWANIE

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

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

Post na blogu

Źródło na bitbucket


1

oracle-java-download to projekt na GitHub, który pozwala tworzyć łącza pobierania dla JDK 8 i JDK 9, które można wykorzystać do dalszego przetwarzania, np. w procesach automatycznej kompilacji lub wdrażania.

Do uruchomienia wymagany jest Linux, Docker i JDK> = 8.



1

Kontekst

Ostatnio napotkałem ten sam problem i chociaż komentarze na tej stronie i kilka innych zawierały pomocne wskazówki - pomyślałem, że dobrze byłoby udokumentować kroki, które podjąłem, aby rozwiązać problem dla osób, które mogą potrzebować dalszej pomocy.

Szczegóły systemu

Postępuję zgodnie z konfiguracją PNDA w AWS, wykonując krok po kroku instrukcję instalacji pnda na:

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

Korzystam z Ubuntu 14.04 [kwalifikujący się do bezpłatnej warstwy] w chmurze AWS i uruchamiam kod z 64-bitowego laptopa z systemem Windows 8.1. Korzystam z PUTTY, aby połączyć się z instancją serwera. Sklonowałem kod pnda z https://github.com/pndaproject/pnda do instancji ubuntu.

Ważna uwaga Należy pamiętać, że jeśli planujesz używać instancji Ubuntu w AWS, upewnij się, że jest to tylko 14.04. Jeśli używasz wersji 16, to nie działa. Nauczyłem się tego na własnej skórze!

Kroki rozwiązania

Ci, którzy posunęli się tak daleko, że napotkali omawiany tutaj błąd, powinni wiedzieć - plik tworzenia kopii lustrzanej obejmuje następujące kroki -

1) Uruchom skrypt create_mirror.sh, [ sudo su -s ./create_mirror.sh ]aby uruchomić pełny proces tworzenia kopii lustrzanej

2) Ten skrypt z kolei wywołuje różne inne skrypty - jednym z nich jest create_mirror_misc.sh ; ten skrypt odnosi się do pnda-static-file-dependencies.txtlisty plików do pobrania.

3) W pierwszej linii pliku pnda-static-file-dependencies.txt znajduje się odniesienie do pobrania pliku 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; W tym momencie mój skrypt nie działa z komunikatemFailed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) Przejrzałem stronę http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gzi zobaczyłem następujący komunikat o błędzie**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5) Aby rozwiązać ten problem, wprowadziłem następującą zmianę w pnda-static-file-dependencies.txt ; Dodałem - no-check-certificate - no-cookies, aby ominąć warunki umowy licencyjnej

6) Tak więc poprawiony kod wygląda następująco: 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

Mam nadzieję, że to jest pomocne.


1

powinieneś spróbować:

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

1

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

mój blog 044-wget 下载 jdk8u221


0

Dzieje się tak, ponieważ po kliknięciu przycisku „Zaakceptuj” na stronie pobierania w przeglądarce strona internetowa zapisuje plik cookie, którego używa do sprawdzenia Twojej umowy, zanim pozwala ci pobrać plik. Problem występuje podczas próby pobrania z wiersza polecenia za pomocą wget, a ponieważ nie ma informacji o plikach cookie z żądaniem wget dotyczących pobrania pliku, więc z perspektywy serwera plików jesteś zupełnie nowym użytkownikiem, który nie zaakceptował licencji umowa.

Jednym z rozwiązań jest wysyłanie informacji o plikach cookie za pomocą opcji --header narzędzia wget (jak pokazano powyżej w innych odpowiedziach). Idealnie, jeśli niektóre treści są chronione, możesz użyć różnych opcji zarządzania sesjami dostępnych z wget. W przypadku tego konkretnego problemu rozwiązano go (obecnie), wysyłając Cookienagłówek z żądaniem pobrania.


Po kliknięciu przycisku „Akceptuj” i chwyć URL z tej strony, to kieruje do http://download.oracle.com/otn/java/...zamiast http://download.oracle.com/otn-pub/java/...po prostu zmienić /otn/na/otn-pub/
T.CK

0

Oto jak samodzielnie uzyskać polecenie. Działa to dla dowolnej wersji:

  1. Uzyskaj dostęp do strony pakietów tutaj: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. Kliknij link pobierania żądanego pakietu
  3. Zaznacz pole wyboru, że „sprawdziłeś i akceptujesz ...”
  4. Kliknij prawym przyciskiem myszy i skopiuj adres linku z przycisku
  5. Wklej do edytora tekstu, a następnie skopiuj wszystko PO „nexturl =”, zaczynając od „https: //”
  6. Zaktualizuj adres URL pobierania w tym poleceniu i powinieneś zacząć:

    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

Aby dodatkowo wyjaśnić wget, --no-check-certyfikat powinien być wystarczająco przejrzysty, ale zawartość nagłówka (dla dowolnego połączenia) można wykryć za pomocą karty sieci narzędzi programisty w przeglądarce. Narzędzia programistyczne są potężne i warto poświęcić czas na naukę. Cieszyć się.


0

Odpowiedź @eric załatwiła sprawę, musisz zaakceptować warunki w ustawionym poleceniu, tj

"Cookie: oraclelicense=accept-securebackup-cookie"

tak wygląda twoje ostateczne polecenie

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

Możesz zdecydować o aktualizacji wersji, zmieniając 8u131na 8uXXX. tak długo, jak długo jest dostępny w repozytorium.


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

-4

Kliknij, aby pobrać z przeglądarki, a następnie skopiuj i wklej dokładny link do miejsca, w którym został pobrany, na przykład:

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

Możesz znaleźć link, patrząc na kartę sieciową przeglądarki po zaakceptowaniu warunków w Oracle i kliknięciu, aby pobrać. F12 w Chrome. Firebug w przeglądarce Firefox.


1
Ponieważ ludzie potrzebują tego do automatycznej instalacji Java na serwerach ze skryptami bash.
Saša Šijak
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.