Linux에서 wget을 통해 Java JDK를 다운로드하면 라이센스 페이지가 대신 표시됩니다


615

Oracle에서 Java를 다운로드하려고하면 대신 OTN 라이센스 조항에 동의해야한다는 페이지가 다운로드됩니다.

죄송합니다!

Oracle Technology Network에서 제품을 다운로드하려면 OTN 라이센스 조항에 동의해야합니다.

꼭 ...

  • 브라우저에 "쿠키"와 JavaScript가 활성화되어 있습니다.
  • 다운로드하려는 제품의 "라이센스 승인"을 클릭했습니다.
  • 라이센스에 동의 한 후 30 분 이내에 다운로드를 시도합니다.

Java를 다운로드하여 설치하려면 어떻게합니까?


이 질문은 개발자가 개발 키트를 설치하는 방법에 관한 주제입니다. 그런 이유로 다시 열기.
George Stocker

답변:


1657

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

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

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

JDK 9 용으로 업데이트 되었으므로 헤더를 보내지 않고도 java.net에서 직접 다운로드 할 수있는 것처럼 보입니다.

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

JDK 8u191 용으로 업데이트

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

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

타르 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

curl을 사용한 RPM :

 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

위의 모든 경우에 'x64'에 대한 'i586'은 32 비트 빌드를 다운로드합니다.

  • -j- > 정크 쿠키
  • -k- > 인증서 무시
  • -L- > 경로 재 지정
  • -H [arg] -> 헤더

curl대신에 사용할 수 있습니다 wget.

JDK 7u79 업데이트

타르 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

curl을 사용한 RPM :

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

다시 한 번, 다운로드중인 버전에 올바른 URL을 지정하십시오. URL은 Oracle JDK 다운로드 사이트 에서 찾을 수 있습니다.

2012 년 6 월 9 일의 원본 답변

를 사용하여 명령 행에서 Oracle JDK를 다운로드하려는 wget경우 해결 방법이 있습니다. wget다음과 같이 명령을 실행하십시오 .

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"

다운로드 링크를 다운로드중인 버전에 맞는 링크로 바꾸십시오.


6
(아마도이 ​​열렬한 재 게시판이 트릭을 수행 할 것입니다.) 간단한 --header "Cookie: oraclelicense=accept-securebackup-cookie"(또는 --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]")은 잘 작동하는 것 같습니다. 이것을 확인할 수 있습니까?
Det

2
새로운 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. --no-쿠키 중복 및 --no-체크인 인증서 에서만 필요 를 Wget SAN 지원 (주로 RHEL / CentOS는 6.x에서)을 누락 1.12 이상. 컬의 버전은 다음과 같습니다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
URL download.oracle.com/otn-pub/java/jdk/8u121-b13/을 사용하여 새로운 121 verson을 시도했지만 작동하지 않는 것 같습니다. 어떤 생각?
Nam Nguyen

3
오류 404 : JDK 11에서 찾을 수 없습니다. 잘못된 URL 일 수 있습니까?
Tien Dung Tran

2
Oracle JDK 11 솔루션에 대한 업데이트가 더 이상 작동하지 않습니다
bomba

247

( Irani 가 내 대답으로 업데이트되었지만 여기에 모두 명확하게 설명되어 있습니다. )

편집 : 2018 년 10 월 16 일에 릴리스 된 Java 11.0.1 용으로 업데이트되었습니다.

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 (쿠키 플래그 없음) : http://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c
자세한 내용은 oracle.comjava.com 의 다운로드를 참조하십시오 .

  • -c / --continue

    완료되지 않은 다운로드를 계속할 수 있습니다.

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

    2014 년 3 월 15 일 부터이 쿠키는 라이센스 계약에 동의 한 후 사용자에게 제공 되며 download.oracle.com 의 Java 패키지에 액세스하는 데 필요합니다 . 2012 년 3 월 27 일 의 이전 (및 첫 번째) 구현 에서는 쿠키를 사용했습니다 gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. 두 경우 모두 공개되지 않은 상태로 남아 있습니다.

    값은 " accept-securebackup-cookie"일 필요는 없습니다 .

Wget <1.13에 필요

  • --no-check-certificate

    SAN ( Subject Alternative Name ) 인증서를 지원 하지 않는 wget 1.12 이하 에서만 필요합니다 (주로 Red Hat Enterprise Linux 6.x 및 CentOS와 같은 친구). 1.13은 2011 년 8 월 에 릴리스 되었습니다.

    현재 버전을 보려면 다음을 사용하십시오. wget --version | head -1

불필요

  • --no-cookies

    이 조합 --no-cookies --header "Cookie: name=value"은 " 공식 "쿠키 지원 으로 언급 되지만 여기서 반드시 필요한 것은 아닙니다.

곱슬 곱슬하다

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

    cURL 이 모든 미러를 통해 리디렉션하는 데 필요합니다 .

  • -C / --continue-at -

    위 참조. cURL은 -끝에 대시 ( )가 필요합니다 .

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

    와 동일 -H / --header "Cookie: ..."하지만 파일도 허용합니다.

  • -O

    cURL 이 파일을 저장하는 데 필요 합니다 (자세한 내용은 저자의 비교 참조 ).


2
"선행 대시"는 "옵션 중 하나를 따르는 대시"여야하지만 이것은 훌륭한 요약입니다.
Alex Dupuy

1
글쎄, " cURL은 -끝에 대시 ( )가 필요합니다. "로 변경했습니다 . 다른 형태의 flag명령이 이미 명령에 표시되는 방식을 취하면 충분 합니다.
Det

1
URL download.oracle.com/otn-pub/java/jdk/8u121-b13/을 사용하여 새 121 버전을 시도했지만 작동하지 않는 것 같습니다. 어떤 생각?
Nam Nguyen

1
이전 버전에서는 작동하지 않는 것 같습니다. 8u121을 다운로드 할 수 없습니다. 아마 때문일 것입니다 Downloading these releases requires an oracle.com account. 해결 방법이 있습니까?
ALex_hha

1
우리는 docker를 사용하므로 특정 버전의 Java를 사용해야합니다. 예. 일부 ftp에서 파일을 찾을 수 있지만, 방금 계정이 없으면 사이트에서 이전 버전을 다운로드 할 수 없다고 언급했습니다.
ALex_hha

35

명령 행에서 Java를 다운로드하는 것은 항상 번거로운 일이었습니다. 내가 과도하게해온 것은 FireFox (다른 브라우저가 작동 할 수 있음)를 사용하여 랩톱에서 다운로드를 시작하고 다운로드 창에서 일시 중지 한 다음 다운로드 메뉴에서 "다운로드 링크 복사"메뉴 항목을 사용하는 것입니다. 파일을 다운로드 중입니다. 이 URL을 Linux 상자에서 사용하여 동일한 파일을 다운로드 할 수 있습니다. URL의 수명이 짧을 것으로 예상됩니다. 추악하지만 일반적으로 성공합니다.


예 .. 작동합니다. 좋은. download.oracle.com/otn-pub/java/jdk/7u9-b05/…
Mukus

3
이것은 흥미로운 문제이지만 질문에 대답하지 않습니다. FireFox를 클릭하면 "자동 다운로드"와 호환되지 않습니다.
Stéphane Gourichon

오늘날 내 브라우저 (복수형)처럼 번거롭지 않습니다 (번역 : 불가능). 약 10 ~ 20 % 정도의 Oracle 서버 연결이 끊어지면서 다운로드가 중단됩니다. CLI 도구는 적어도 중단 된 위치에서 다시 시도하며 결국 실행 중 하나가 시간 초과 / 거부없이 완료됩니다.
Roboprog

우수한! 쿼리 매개 변수 AuthParam는 Oracle이 사용자가 라이센스에 동의했는지 여부를 확인하는 것과 관련이 있습니다.
ass

오늘 나를 위해 일하는 솔루션 만. accept cookie 매개 변수를 사용하는 위의 모든 wget 트릭이 작동하지 않았습니다.
Saad Benbouzid

23

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

아래의 오래된 링크

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

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

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

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

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
이 절대적인 도움이되었습니다. tar.gz를 사용하려면 간단히 .rpm의 이름을 .tar.gz로
바꾸어야했습니다.

19

Oracle은 Java Runtime 및 Java SDK를 최대한 어렵게 만들기 위해 모든 것을 가능하게했습니다.

다음은 커맨드 라인 애호가를위한 안내서입니다.

데비안 유사 시스템 ( Debian스퀴즈 및 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

참고 : 더 좋고 쉬운 방법으로 의견을 추가하면 가이드를 업데이트 할 것입니다.


2
2013-11-02 기준으로 다른 방법은 다른 버전으로 조정하기가 쉽지 않습니다. 이 방법은 현재 버전에 관계없이 작동하며 "--yes"와 같은 apt-get 옵션을 사용하여 자동 / 스크립트 / 자동으로 실행할 수 있습니다.
Stéphane Gourichon

--yes, --assume-yes, --force-yes옵션 이있는 oracle-java8-installer 로이 방법을 시도 했지만 설치할 때마다 Enter 키와의 라이센스 계약에 동의하기를 원합니다.
Drey

9

자바 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

--no-check-certificate? 스위치가 없으면 제대로 작동하므로 보안 측면에서 특히 사용되지 않는 경우 사용해서는 안됩니다.
tymik


6

오라클은 Java를 사용하기로 한 라이센스 계약서에 Java를 사용함으로써 라이센스에 '동의 함'을 명시하고 있음에도 불구하고 다운로드 링크에 예방 쿠키를 사용하여 약관에 동의하도록했습니다.

오라클이 원하는 방법은 계약서와 함께 다운로드하는 것입니다. 그런 다음이 스크립트 cn은 특정 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
이 답변은 Linux를 사용하고 있으며 비표준 방식 / 장소 및 기타 여러 가지로 Linux를 설치한다고 가정합니다. 더 나은 대답은 "다운로드 웹 사이트의 설치 지침을 따르십시오"입니다. Ubuntu를 사용하지 않는 경우 다른 방법이 있습니다.
Stephen C

8
질문 제목에 Linux가 포함되어있을 때 답이 Linux를 가정하는 것이 얼마나 이상합니까? 리눅스 자체는 그렇지 않다는 점을 감안할 때 스케이트는 한 가지로 적합하지 않습니다. 이것이 내 자신의 질문에 대한 내 자신의 대답이라고 생각하면, 나는 그것을 테스트했고 그것은 나를 위해 일했다.
thejartender

6

JCE8이 필요한 사람들도 다운로드 할 수 있습니다.

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

또는

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

이것은 JDK 6에서 작동합니다. 다운로드 URL을 최신 버전으로 바꾸면됩니다.

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

이것은 효과가 있지만 6u33-b03이있는 부분 때문에 6u48을 선택할 수 없습니다.
Jacob Phillips

2013-11-02에는이 기능을 사용할 수 없었습니다. 파일 대신 HTML 등록 페이지를 다운로드합니다.
Stéphane Gourichon

5

이 명령은 지금 jdk8 tgz 패키지를 다운로드 할 수 있습니다 (2018-09-06), 행운을 빕니다!

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"

나는 다른 사람들에게 명령을 시도했지만 아무것도 효과가 없었지만 이것은 원활하게 작동했습니다 (2019 년 9 월 20 일에 실행).
다른 코더

4

모든 새 Java 버전에 새 링크를 사용하거나 기존 스크립트를 변경하는 대신 필요한 Java 패키지 다운로드를 자동화하고 이후에 설치를 통해보다 일반적인 방법을 찾고있었습니다 yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm.

패키지를 찾아서 다운로드하기 위해 수동 / 사용자 작업과 비슷한 방법을 사용했습니다. 나는 확신 하나가 같은 다른 도구를 사용하여 그것을 할 수있는 더 우아한 방법을 찾을 것 또한 오전 egrep, awk그래서, 등등을 여기 예로두고 :

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

지금 다운로드 링크를 사용할 수 있으므로 wget또는로 계속 진행할 수 있습니다 curl.


3

위의 모든 내용은 최신 Java RPM의 URL을 알고 있다고 가정합니다.

Oracle은 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1에 설명 된대로 각 Java 버전 의 최신 업데이트에 대한 지속적인 링크를 제공합니다. 그러나 Oracle Support 계정에 로그인 / 로그인해야합니다 . * 그렇지 않으면 각 Java 버전의 마지막 "공개"업데이트에만 액세스 할 수 있습니다 (예 : 1.6_u45 (2013 년 3 월; 최신 업데이트는 u65, 2013 년 10 월)).

영구 링크 를 알고 나면 실제 다운로드로 해결할 수 있어야합니다. "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
암호를 전송할 때 --no-check-certificate를 사용하지 않는 것이 좋습니다.
Rick Moritz

3

이미 여기에 게시 된 것처럼 : https://stackoverflow.com/a/41718895/4370196

JDK 8 업데이트 121 용 업데이트

Oracle은 다운로드 링크에 일부 md5hash를 삽입 했으므로 명령 행에 대한 다운로드 링크를 자동으로 어셈블 할 수 없습니다.

그래서 최신 jdk 다운로드 링크를 가져 와서 다운로드하고 rpm을 통해 직접 설치하기 위해 불쾌한 bash 명령 줄을 수정했습니다. 관심있는 모든 사람들에게 :

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'| (헤드 -n 1) | awk '{print " http://www.oracle.com "$ 1}'| xargs wget --no-cookies --header "쿠키 : 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 "쿠키 : gpw_e24 = xxx; oraclelicense = accept-securebackup-cookie;" -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm

굵은 부분 원하는대로의 패키지로 대체해야합니다.


예, 더 이상 링크를 조립하는 것이 쉽지 않습니다. bash 스크립트에서 비슷한 접근 방식을 사용하여 버전 8 및 9의 최신 JRE 및 JDK 다운로드 링크를 얻었습니다 . 이 스레드에서 answer 로 찾을 수 있습니다 .
U880D

2

나는 이것을 사용하여 패키지를 만들어서 (Debian 기반 Linux 배포판의 경우) 이것을 해결합니다. java-package몇 번 (다양한 아키텍처의 경우) 다음 내부적으로 배포 .

큰 장점은이 방법이 항상 작동한다는 것입니다. 오라클의 웹 페이지가 아무리 열광하더라도. 오라클은 더 이상 내 빌드를 깰 수 없습니다!

단점은 처음에 설정하는 것이 조금 더 쉽다는 것입니다.

  • 브라우저에서 tar.gz 파일을 수동으로 다운로드하십시오 (따라서 용어를 "수락"합니다).
  • 를 실행하십시오 make-jpkg jdk-7u51-linux-x64.tar.gz. 이것은 만듭니다oracle-java8-jdk_8_amd64.deb
  • 조직 내에서 배포

인터넷을 통해 배포하려면 암호로 보호 된 apt 저장소를 사용하거나 대칭 암호화를 사용하여 원시 패키지를 제공하는 것이 좋습니다.

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"

인터넷에서 (암호화되지 않은) .deb 패키지를 제공하는 것은 Oracle과의 라이센스 계약을 위반하는 것일 수 있습니다.

... 오라클은 귀하에게 ... 프로그램을 실행하기위한 목적으로 만 완전하고 수정되지 않은 소프트웨어를 내부적으로 재생산 할 수있는 라이센스를 부여합니다. "

수신 측에서 암호로 보호 된 apt repo가있는 경우 암호를 입력하기 만하면 apt-get install됩니다. 원시 패키지가있는 경우 다운로드하여 암호를 해독하십시오 dpkg -i. 매력처럼 작동합니다!


2
이것이 라이센스를 기리기 위해 구현 된 방법입니다. 이것은 굉장하다 :-)
Kowser

2

wget 이것은 나를 위해 일했다 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

2017-04-25 기준으로 수락 된 답변이 효과가 없었습니다. 그러나 간단한 해결책은 옵션 -b대신 플래그를 사용하는 것입니다 --header.

예를 들어 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

백그라운드에서 실행되어 출력을에 기록합니다 wget-log.


1

시험

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

Oracle JDK 6을 사용하려는 경우

출처 : curl / wget을 사용한 Oracle JVM 다운로드


1

젠투 박스 용 jdk-download 스크립트 (tar.gz 전용)를 만들었습니다. 다른 유사한 스크립트처럼 업데이트 할 필요가 없으며 원하는 버전에 맞는 최신 빌드를 "브 루트 강제로"다운로드하려고합니다.

용법

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

블로그 포스트

비트 버킷 소스


1

oracle-java-download 는 GitHub의 프로젝트로, 자동화 된 빌드 또는 배포 프로세스 등의 추가 처리에 사용할 수있는 JDK 8 및 JDK 9 용 다운로드 링크를 만들 수 있습니다.

Linux, Docker 및 JDK> = 8이 필요합니다.



1

문맥

나는 최근에 같은 문제에 직면했고이 페이지와 다른 사람들의 의견이 도움이되는 힌트를 제공했지만 추가 도움이 필요한 사람들을 위해 문제를 해결하기 위해 취한 조치를 문서화하는 것이 좋을 것이라고 생각했다.

시스템 정보

다음의 단계별 pnda 설치 안내서에 따라 AWS에서 PNDA 설정을 따르고 있습니다.

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

AWS 클라우드에서 우분투 14.04 [무료 계층 대상]을 사용하고 있으며 64 비트 Windows8.1 랩톱에서 코드를 실행하고 있습니다. PUTTY를 사용하여 서버 인스턴스에 연결하고 있습니다. https://github.com/pndaproject/pnda 에서 pbun 코드를 우분투 인스턴스에 복제했습니다 .

중요 참고 AWS에서 Ubuntu 인스턴스를 사용하려는 경우 14.04 전용인지 확인하십시오. 버전 16을 사용하면 작동하지 않습니다. 나는 그것을 어려운 길을 배웠다!

해결 단계

여기에서 논의되는 오류가 발생했을 때 알 수 있듯이 미러 작성 파일에는 다음 단계가 포함됩니다.

1) 스크립트 작성 _mirror.sh [ sudo su -s ./create_mirror.sh ]를 실행하여 전체 미러 작성 프로세스를 실행하십시오.

2)이 스크립트는 다양한 다른 스크립트를 호출합니다. 하나는 create_mirror_misc.sh입니다 . 이 스크립트는 pnda-static-file-dependencies.txt다운로드 할 파일 목록이있는 파일을 나타냅니다 .

3) pnda-static-file-dependencies.txt의 첫 번째 행은 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. 이 시점에서 내 스크립트가 메시지와 함께 실패했습니다.Failed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) 페이지를 탐색 한 http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz후 다음 오류 메시지가 표시됩니다.**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5)이 문제를 해결하기 위해 다음과 같이 변경했습니다 pnda-static-file-dependencies.txt. 라이센스 조건 계약 조건을 무시하기 위해 --no-check-certificate --no-cookies를 추가했습니다.

6) 수정 된 코드는 다음과 같습니다. 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

도움이 되길 바랍니다.


1

당신은 시도해야합니다 :

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

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

내 블로그 044-wget 下载 jdk8u221


0

브라우저의 다운로드 페이지에서 "동의"버튼을 클릭하면 웹 페이지가 파일을 다운로드하기 전에 계약을 확인하는 데 사용하는 쿠키를 저장하기 때문에 발생합니다. wget을 사용하여 명령 행에서 다운로드하려고 할 때 문제가 발생하며 파일 서버의 관점에서 파일을 다운로드하기 위해 wget 요청과 함께 쿠키 정보가 전송되지 않기 때문에 라이센스를 수락하지 않은 완전히 새로운 사용자입니다. 협정.

한 가지 해결책은 wget 유틸리티의 --header 옵션을 사용하여 쿠키 정보를 보내는 것입니다 (위의 다른 답변 참조). 이상적으로 일부 컨텐츠가 보호되는 경우 wget에서 사용 가능한 다양한 세션 관리 옵션을 사용합니다. 그러나이 특정 문제의 Cookie경우 다운로드 요청과 함께 헤더를 보내서 현재 해결 됩니다.


를 클릭 "동의"및 해당 페이지에서 URL을 잡아 때, 당신은에 지시하는 http://download.oracle.com/otn/java/...대신 http://download.oracle.com/otn-pub/java/...그냥 변화 /otn//otn-pub/
T.CK

0

명령을 직접 얻는 방법은 다음과 같습니다. 이것은 모든 버전에서 작동합니다.

  1. 액세스 패키지 페이지 : https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. 원하는 패키지의 다운로드 링크를 클릭하십시오
  3. "검토 및 수락 ..."확인란을 선택하십시오.
  4. 마우스 오른쪽 버튼을 클릭하고 버튼에서 링크 주소 복사
  5. 텍스트 편집기에 붙여 넣은 다음 'https : //'로 시작하여 'nexturl ='이후의 모든 내용을 복사하십시오.
  6. 이 명령으로 다운로드 URL을 업데이트하십시오.

    wget --no-check-certificate -c --header "쿠키 : 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

wget을 자세히 설명하려면 --no-check-certificate가 충분히 명확해야하지만 브라우저의 개발자 도구 네트워크 탭을 사용하여 헤더 내용 (모든 호출에 대한)을 찾을 수 있습니다. 개발자 도구는 강력하고 배울 시간이 많습니다. 즐겨.


0

@eric 대답은 나를 위해 속임수를 설정했습니다. 설정하려는 명령에서 용어를 수락해야합니다.

"Cookie: oraclelicense=accept-securebackup-cookie"

최종 명령은 이렇게 보입니다

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

당신은 변경하여 버전을 업데이트하도록 결정할 수 있습니다 8u1318uXXX. 너무 오랫동안 repo에서 사용할 수 있습니다.


-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

클릭하여 브라우저에서 다운로드 한 다음 다운로드 한 정확한 링크를 복사하여 붙여 넣으십시오 (예 :

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

oracle 용어를 수락 한 후 클릭하여 다운로드하면 브라우저의 네트워크 탭을보고 링크를 찾을 수 있습니다. Chrome의 F12 Firefox의 Firebug.


1
사람들은 bash 스크립트가있는 서버에 Java를 자동 설치하기 위해 이것이 필요하기 때문입니다.
Saša Šijak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.