Thay vào đó, tải xuống Java JDK trên Linux thông qua wget được hiển thị trang giấy phép


615

Khi tôi cố tải xuống Java từ Oracle, thay vào đó tôi đã tải xuống một trang nói với tôi rằng tôi cần đồng ý với các điều khoản cấp phép OTN.

Lấy làm tiếc!

Để tải xuống các sản phẩm từ Mạng công nghệ Oracle, bạn phải đồng ý với các điều khoản cấp phép OTN.

Hãy chắc chắn rằng ...

  • Trình duyệt của bạn có "cookie" và bật JavaScript.
  • Bạn đã nhấp vào "Chấp nhận giấy phép" cho sản phẩm bạn muốn tải xuống.
  • Bạn thử tải xuống trong vòng 30 phút sau khi chấp nhận giấy phép.

Làm cách nào để tải xuống và cài đặt Java?


Câu hỏi này thuộc chủ đề vì nó liên quan đến cách các nhà phát triển cài đặt bộ công cụ phát triển. Mở lại vì lý do đó.
George Stocker

Câu trả lời:


1657

CẬP NHẬT CHO 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

CẬP NHẬT CHO 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

CẬP NHẬT CHO 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

CẬP NHẬT CHO JDK 9 Có vẻ như bạn có thể tải xuống ngay bây giờ từ java.net mà không cần gửi tiêu đề

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

CẬP NHẬT CHO 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"

CẬP NHẬT CHO 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 bằng cách sử dụng 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

Trong tất cả các trường hợp ở trên, hãy thay thế 'i586' cho 'x64' để tải xuống bản dựng 32 bit.

  • -j -> cookie rác
  • -k -> bỏ qua chứng chỉ
  • -L -> theo dõi chuyển hướng
  • -H [arg] -> tiêu đề

curlcó thể được sử dụng thay thế wget.

CẬP NHẬT CHO 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 bằng cách sử dụng 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

Một lần nữa, hãy đảm bảo bạn chỉ định URL chính xác cho phiên bản bạn đang tải xuống. Bạn có thể tìm thấy URL ở đây: trang web tải xuống Oracle JDK

CÂU TRẢ LỜI TỪ NGÀY 9 tháng 6 năm 2012

Nếu bạn đang tìm cách tải xuống JDK của Oracle từ dòng lệnh bằng cách sử dụng wget, có một cách giải quyết. Chạy wgetlệnh như sau:

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"

Đảm bảo thay thế liên kết tải xuống bằng liên kết chính xác cho phiên bản bạn đang tải xuống.


6
(Có lẽ zillionth repost này cuối cùng sẽ làm các trick.) Một đơn giản --header "Cookie: oraclelicense=accept-securebackup-cookie"(hoặc --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]") dường như làm việc tốt. Bạn có thể xác nhận điều này?
Det

2
Cập nhật cho 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. Các --no-cookie là không cần thiết và --no-check-certificate là cần thiết chỉ với wget 1.12 trở lên, mà đang thiếu hỗ trợ SAN (chủ yếu là RHEL / CentOS 6.x). Các cURL phiên bản là: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
Tôi đã thử 121 verson mới với url download.oracle.com/otn-pub/java/jdk/8u121-b13/ chủ nhưng nó dường như không hoạt động. bất cứ suy nghĩ nào?
Nam Nguyễn

3
đã nhận được LRI 404: Không tìm thấy với JDK 11, có thể là URL không chính xác?
Tiến Dũng Trần

2
CẬP NHẬT CHO giải pháp Oracle JDK 11 không hoạt động nữa
bomba ngày

247

( Irani cập nhật câu trả lời của tôi, nhưng đây là để làm rõ tất cả. )

Chỉnh sửa: Đã cập nhật cho Java 11.0.1 , được phát hành vào ngày 16 tháng 10 năm 2018

Quên

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 (không có cờ cookie): http://javadl.oracle.com/webapps/doad/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c
Xem các bản tải xuống trong oracle.comjava.com .

  • -c / --continue

    Cho phép tiếp tục tải xuống chưa hoàn thành.

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

    Kể từ ngày 15 tháng 3 năm 2014 , cookie này được cung cấp cho người dùng sau khi chấp nhận Thỏa thuận cấp phép và cần thiết để truy cập các gói Java trong download.oracle.com . Việc triển khai trước đó (và đầu tiên) vào ngày 27 tháng 3 năm 2012 đã sử dụng cookie gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. Cả hai trường hợp vẫn không được công bố cho công chúng.

    Giá trị không phải là " accept-securebackup-cookie".

Cần thiết cho Wget <1.13

  • --no-check-certificate

    Chỉ yêu cầu với wget 1.12 trở về trước , không hỗ trợ chứng chỉ Tên thay thế chủ đề (SAN) (chủ yếu là Red Hat Enterprise Linux 6.x và bạn bè, chẳng hạn như CentOS). 1.13 đã được phát hành vào tháng 8 năm 2011.

    Để xem phiên bản hiện tại, sử dụng: wget --version | head -1

Không yêu cầu

  • --no-cookies

    Sự kết hợp --no-cookies --header "Cookie: name=value"được đề cập là hỗ trợ cookie " chính thức ", nhưng không bắt buộc ở đây.

Xoăn

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

    Cần thiết cho cURL để chuyển hướng qua tất cả các gương.

  • -C / --continue-at -

    Xem ở trên. cURL yêu cầu dấu gạch ngang ( -) cuối cùng.

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

    Tương tự -H / --header "Cookie: ...", nhưng chấp nhận các tập tin quá.

  • -O

    Cần thiết cho cURL để lưu tệp (xem so sánh của tác giả để biết thêm sự khác biệt).


2
"Dấu gạch trước" phải là "dấu gạch ngang theo một trong hai dạng của tùy chọn" nhưng đây là một tóm tắt tuyệt vời.
Alex Dupuy

1
Chà, cuối cùng tôi đã đổi nó thành " cURL yêu cầu dấu gạch ngang ( -). " Điều đó đủ rõ ràng, xem cách thức khác của hình thức flagđã được hiển thị trong lệnh.
Det

1
Tôi đã thử phiên bản 121 mới với url download.oracle.com/otn-pub/java/jdk/8u121-b13/ chủ nhưng nó dường như không hoạt động. bất cứ suy nghĩ nào?
Nam Nguyễn

1
Có vẻ như không hoạt động cho phiên bản cũ. Tôi không thể tải xuống 8u121. Có lẽ là vì Downloading these releases requires an oracle.com account. Bất kỳ cách giải quyết?
ALex_hha

1
Chúng tôi sử dụng docker, đó là lý do tại sao chúng tôi cần sử dụng phiên bản cụ thể của java. Có, tôi có thể tìm thấy tệp trên một số ftp, nhưng tôi đã đề cập rằng từ bây giờ bạn không thể tải xuống phiên bản trước từ trang web mà không có tài khoản của họ
ALex_hha

35

Tải xuống Java từ dòng lệnh luôn luôn gây rắc rối. Những gì tôi đã và đang làm một cách thường xuyên là sử dụng FireFox (các trình duyệt khác có thể hoạt động) để bắt đầu tải xuống trên máy tính xách tay của tôi, tạm dừng nó (trong các cửa sổ Tải xuống), sử dụng mục menu "Sao chép liên kết tải xuống" của menu ngữ cảnh được hiển thị cho dữ liệu đang tải. URL này sau đó có thể được sử dụng trên hộp Linux để tải xuống cùng một tệp. Tôi hy vọng URL có một thời gian ngắn để sống. Xấu xí, nhưng nói chung là thành công.


Vâng .. nó hoạt động. Đẹp. Tôi đã có url của mình như download.oracle.com/otn-pub/java/jdk/7u9-b05/
mẹo

3
Đây là một vấn đề thú vị nhưng không trả lời câu hỏi. Nhấp vào FireFox không tương thích với "tự động tải xuống".
Stéphane Gourmetichon

Không rắc rối (dịch: không thể) như trong trình duyệt của tôi (số nhiều) ngày nay. Khoảng 10 đến 20%, máy chủ của Oracle sẽ ngắt kết nối, để lại cho tôi một bản tải xuống bị cắt ngắn. Công cụ CLI ít nhất thử lại từ nơi nó rời đi, và cuối cùng một trong những lần chạy sẽ hoàn thành mà không hết thời gian / từ chối.
Roboprog

thông minh! truy vấn param AuthParamcó liên quan đến việc Oracle kiểm tra xem người dùng có đồng ý cấp phép hay không.
vào

giải pháp duy nhất làm việc cho tôi ngày hôm nay. Tất cả các thủ thuật wget ở trên với tham số cookie chấp nhận không hoạt động.
Saad Benbouzid

23

Đã cập nhật cho 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

Liên kết lỗi thời dưới đây

Đã cập nhật cho 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

Đã cập nhật cho 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

Đã cập nhật cho 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

Đã cập nhật cho 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

Đã cập nhật cho 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
Điều này tuyệt đối đã giúp tôi. Để sử dụng tar.gz, tôi chỉ cần đổi tên .rpm thành .tar.gz
Yoraco Gonzales

19

Tôi biết rằng Oracle đã làm mọi thứ có thể để làm cho Java Runtime và Java SDK của họ khó nhất có thể.

Dưới đây là một số hướng dẫn cho những người yêu thích dòng lệnh.

Đối với Debian giống như các hệ thống (được thử nghiệm trên Debianbóp và 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

Lưu ý: nếu bạn biết cách tốt hơn hoặc dễ dàng hơn để thêm nhận xét, tôi sẽ cập nhật hướng dẫn.


2
Kể từ 2013-11 / 02, các phương pháp khác không dễ điều chỉnh với các phiên bản khác nhau. Phương pháp này hoạt động bất kể phiên bản hiện tại là gì và có thể được tự động / viết kịch bản / chạy không cần giám sát với các tùy chọn apt-get như "--yes".
Stéphane Gourichon

Đã thử phương pháp này với trình cài đặt oracle-java8 với --yes, --assume-yes, --force-yescác tùy chọn nhưng cài đặt mọi lúc muốn tôi chấp nhận thỏa thuận cấp phép với khóa nhập.
Drey

9

Bộ công cụ phát triển 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

tại sao --no-check-certificate? Nó hoạt động tốt mà không có công tắc đó vì vậy về mặt bảo mật, nó không nên được sử dụng, đặc biệt là khi nó đã lỗi thời.
tymik


6

Oracle đã đặt cookie ngăn chặn vào liên kết tải xuống để buộc bạn đồng ý với các điều khoản mặc dù thỏa thuận cấp phép sử dụng Java nêu rõ rằng chỉ bằng cách sử dụng Java, bạn 'đồng ý' với giấy phép ..

Phương pháp mà Oracle muốn là bạn tải xuống với một thỏa thuận. Sau đó, tập lệnh này được sửa đổi cho Linux cụ thể của bạn

#!/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
Câu trả lời này giả định rằng bạn đang sử dụng Linux và bạn muốn cài đặt nó theo cách / địa điểm không chuẩn và một loạt các thứ khác. Một câu trả lời tốt hơn sẽ là "chỉ cần làm theo các hướng dẫn cài đặt trên trang web tải xuống" ... trừ khi bạn đang sử dụng Ubuntu, trong trường hợp đó có những cách khác để làm điều đó.
Stephen C

8
Và thật kỳ lạ khi câu trả lời giả định Linux khi tiêu đề câu hỏi bao gồm Linux? Sceipt không phải là một kích cỡ phù hợp với tất cả do Linux tự nó không như vậy. Cho rằng đây là câu trả lời của riêng tôi cho câu hỏi của riêng tôi, tôi đã thử nó và nó đã làm việc cho tôi.
khởi nghiệp

6

Đối với những người cần JCE8 là tốt, bạn cũng có thể tải xuống.

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

Hoặc là

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

Điều này hoạt động cho JDK 6, bạn chỉ cần thay thế url tải xuống bằng phiên bản mới nhất.

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

Điều này hoạt động nhưng tôi không thể chọn 6u48 vì phần bạn có 6u33-b03.
Jacob Phillips

Vào ngày 2013-11 / 02, không thể có điều này để làm việc. Tải xuống trang đăng ký HTML thay vì tệp.
Stéphane Gourmetichon

5

Lệnh này có thể tải xuống gói jdk8 tgz ngay bây giờ (2018-09-06), chúc may mắn!

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"

Tôi đã thử lệnh của người khác nhưng không có gì hoạt động, nhưng lệnh này hoạt động trơn tru (chạy vào ngày 20 tháng 9 năm 2019).
Một lập trình viên khác

4

Thay vì sử dụng cho mỗi phiên bản Java mới một liên kết mới hoặc thay đổi các tập lệnh hiện có, tôi đã tìm kiếm một cách chung hơn để tự động tải xuống các gói Java cần thiết và cài đặt sau yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm.

Tôi đã sử dụng một cách tiếp cận tầm thường nào đó tương tự như hành động thủ công / người dùng để tìm gói và tải xuống. Tôi cũng khá chắc chắn rằng ai sẽ tìm thấy một cách thanh lịch hơn để làm điều đó bằng cách sử dụng các công cụ khác như egrep, awk, vv .., vì vậy hãy để nó như là một ví dụ ở đây:

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

Vì các liên kết tải xuống hiện có sẵn, người ta có thể tiếp tục với wgethoặc curl.


3

Tất cả những điều trên dường như cho rằng bạn biết URL cho RPM Java mới nhất ...

Oracle cung cấp các liên kết liên tục đến các bản cập nhật mới nhất của từng phiên bản Java như được ghi lại tại https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 - mặc dù bạn cần tạo / đăng nhập vào tài khoản Hỗ trợ của Oracle . * Nếu không, bạn chỉ có thể truy cập vào bản cập nhật "công khai" cuối cùng của mỗi phiên bản Java, ví dụ: 1.6_u45 (tháng 3 năm 2013; Bản cập nhật mới nhất là u65, tháng 10 năm 2013) *

Khi bạn biết liên kết liên tục, bạn sẽ có thể giải quyết nó để tải xuống thực sự; Các công việc sau đây đối với tôi, mặc dù tôi chưa biết liệu tham chiếu "aru" có thay đổi hay không.

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
Tôi thực sự khuyên bạn không nên sử dụng --no-check-cert khi truyền mật khẩu.
Rick Moritz

3

Như đã được đăng ở đây: https://stackoverflow.com/a/41718895/4370196

Cập nhật cho JDK 8 Cập nhật 121

Vì Oracle đã chèn một số md5hash trong các liên kết tải xuống của họ, nên người ta không thể tự động lắp ráp một liên kết tải xuống cho dòng lệnh.

Vì vậy, tôi đã sửa một số dòng lệnh bash khó chịu để có được liên kết tải xuống jdk mới nhất, tải xuống và trực tiếp cài đặt qua vòng / phút. Dành cho tất cả những ai quan tâm:

wget -q http://www.oracle.com/technetwork/java/javase/doads/index.html -O ./index.html && grep -Eoi '] +>' index.html | grep -Eoi '/technetwork/java/javase/doads/jdk8-doads-[0-9[+.html' | (đầu -n 1) | awk '{in " http://www.oracle.com " $ 1}' | xargs wget --no-cookies --header "Cookie: gpw_e24 = xxx; oraclelicense = accept-securBackup-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-securBackup-cookie;" -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm

Phần in đậm nên được thay thế bằng gói theo ý thích của bạn.


Vâng, không còn dễ dàng nữa để lắp ráp một liên kết. Tôi đã sử dụng một cách tiếp cận tương tự trong tập lệnh bash để nhận các liên kết tải xuống JRE và JDK mới nhất cho phiên bản 8 và 9. Nó có thể được tìm thấy trong chuỗi này dưới dạng câu trả lời .
U880D

2

Tôi giải quyết điều này (đối với các bản phân phối Linux dựa trên Debian) bằng cách tạo các gói bằng cách sử dụng java-packagemột vài lần (cho các kiến ​​trúc khác nhau), sau đó phân phối chúng trong nội bộ.

Điểm cộng lớn là phương pháp này luôn hoạt động; bất kể các trang web của Oracle trở nên điên rồ như thế nào. Oracle không còn có thể phá vỡ bản dựng của tôi!

Nhược điểm là thiết lập ban đầu nhiều hơn một chút.

  • Tải xuống các tệp tar.gz theo cách thủ công trong trình duyệt (do đó "chấp nhận" các điều khoản của chúng)
  • Chạy đi make-jpkg jdk-7u51-linux-x64.tar.gz. Điều này tạo raoracle-java8-jdk_8_amd64.deb
  • Phân phối nó trong tổ chức của bạn

Để phân phối qua Internet, tôi khuyên bạn nên sử dụng kho lưu trữ apt được bảo vệ bằng mật khẩu hoặc cung cấp các gói thô sử dụng mã hóa đối xứng:

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"

Tất nhiên việc cung cấp các gói .deb (không được mã hóa) trên internet có thể là vi phạm thỏa thuận cấp phép của bạn với Oracle, trong đó nêu rõ:

... Oracle cấp cho bạn ... giấy phép ... để sao chép và sử dụng nội bộ Phần mềm hoàn chỉnh và chưa được sửa đổi cho mục đích duy nhất là chạy Chương trình "

Ở đầu nhận, nếu bạn có mật khẩu apt repo, tất cả những gì bạn cần làm là apt-get installnó. Nếu bạn có các gói thô, tải xuống, giải mã và dpkg -ichúng. Hoạt động như một lá bùa!


2
Vì vậy, đây là cách nó đã được thực hiện tôn vinh giấy phép. Điều này thật tuyệt vời :-)
Kowser

2

wget Điều này làm việc cho tôi 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

Câu trả lời được chấp nhận không hiệu quả với tôi, kể từ 2017-04-25. Tuy nhiên, giải pháp đơn giản là sử dụng -bcờ thay vì --headertùy chọn.

Ví dụ: để có được 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

Điều đó sẽ thực hiện trong nền, viết đầu ra wget-log.


1

Thử

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

nếu bạn giống như tôi đang cố lấy Oracle JDK 6.

nguồn: Tải xuống Oracle JVM bằng cách sử dụng curl / wget


1

Tôi đã tạo một tập lệnh tải xuống jdk (cụ thể cho tar.gz) cho các hộp gentoo của tôi. Không cần cập nhật như các tập lệnh tương tự khác, cố gắng "brute-force" tải xuống bản dựng mới nhất cho bất kỳ phiên bản nào bạn muốn.

SỬ DỤNG

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

Bài viết trên blog

Nguồn trên bitbucket


1

oracle-java-download là một dự án trên GitHub cho phép bạn tạo các liên kết tải xuống cho JDK 8 và JDK 9 mà bạn có thể sử dụng để xử lý thêm, ví dụ như trong các quy trình xây dựng hoặc triển khai tự động.

Nó yêu cầu Linux, Docker và JDK> = 8 để chạy.



1

Bối cảnh

Gần đây tôi đã phải đối mặt với cùng một vấn đề và mặc dù các bình luận trên trang này và một số người khác đưa ra gợi ý hữu ích - tôi nghĩ sẽ tốt khi ghi lại các bước tôi đã thực hiện để khắc phục vấn đề cho những người có thể cần trợ giúp thêm.

Chi tiết hệ thống

Tôi đang theo dõi PNDA được thiết lập trên AWS bằng cách làm theo hướng dẫn cài đặt pnda từng bước tại:

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

Tôi đang sử dụng Ubuntu 14.04 [đủ điều kiện miễn phí] trên đám mây AWS và tôi đang chạy mã từ máy tính xách tay 64 bit windows8.1. Tôi đang sử dụng PUTTY để kết nối với phiên bản máy chủ. Tôi git đã sao chép mã pnda từ https://github.com/pndaproject/pnda sang phiên bản ubfox .

Lưu ý quan trọng Xin lưu ý rằng nếu bạn dự định sử dụng phiên bản Ubuntu trên AWS, hãy đảm bảo chỉ có 14.04. Nếu bạn sử dụng phiên bản 16, nó không hoạt động. Tôi đã học nó một cách khó khăn!

Các bước giải quyết

Như những người đã đi xa như đã gặp phải lỗi được thảo luận ở đây sẽ biết - tệp tạo gương bao gồm các bước sau -

1) Chạy tập lệnh created_mirror.sh [ sudo su -s ./create_mirror.sh ]để chạy toàn bộ quá trình tạo bản sao

2) Tập lệnh này lần lượt gọi nhiều tập lệnh khác - một trong số chúng là created_mirror_misc.sh ; đoạn script này đề cập đến pnda-static-file-dependencies.txtdanh sách các tệp sẽ được tải xuống.

3) Trên dòng đầu tiên của pnda-static-file-Depencies.txt là một tham chiếu để tải xuống tệp jdk-8u131-linux-x64.tar.gz từ http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz oraclelicense=accept-securebackup-cookie; Chính tại thời điểm này, kịch bản của tôi đã thất bại với thông điệpFailed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) Tôi duyệt trang http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gzvà thấy thông báo lỗi sau được hiển thị**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5) Để giải quyết vấn đề này, tôi đã thực hiện thay đổi sau đây cho pnda-static-file-dependencies.txt; Tôi đã thêm --no-check-cert --no-cookies để bỏ qua điều kiện thỏa thuận thời hạn giấy phép

6) Vì vậy, mã sửa đổi trông giống như - 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

Tôi hy vọng điều này là hữu ích.


1

bạn nên thử:

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

tải về 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}')

blog của tôi 044-wget 下载 jdk8u221


0

Điều này xảy ra bởi vì khi bạn nhấp vào nút "Chấp nhận" trên trang tải xuống trong trình duyệt của bạn, trang web sẽ lưu cookie mà nó sử dụng để kiểm tra thỏa thuận của bạn trước khi cho phép bạn tải xuống tệp. Sự cố xảy ra khi cố tải xuống từ dòng lệnh bằng cách sử dụng wget và vì không có thông tin cookie nào được gửi với yêu cầu wget để tải xuống tệp nên theo quan điểm của máy chủ tệp, bạn là người dùng hoàn toàn mới đã chấp nhận giấy phép hợp đồng.

Một giải pháp là gửi thông tin cookie bằng tùy chọn --header của tiện ích wget (như được hiển thị ở trên trong các câu trả lời khác). Lý tưởng nhất là nếu một số nội dung được bảo vệ, bạn sẽ sử dụng các tùy chọn quản lý phiên khác nhau có sẵn với wget. Tuy nhiên, đối với vấn đề cụ thể này, nó đã được giải quyết (hiện tại) bằng cách gửi Cookietiêu đề với yêu cầu tải xuống.


Khi bạn nhấp vào "Chấp nhận" và lấy URL từ trang đó, nó sẽ hướng dẫn bạn http://download.oracle.com/otn/java/...thay vì http://download.oracle.com/otn-pub/java/...Chỉ thay đổi /otn/thành/otn-pub/
T.CK

0

Đây là cách để tự nhận lệnh. Điều này hoạt động cho bất kỳ phiên bản:

  1. Truy cập trang gói tại đây: https://www.oracle.com/java/technology/javase-jdk11-doads.html
  2. Nhấp vào liên kết tải xuống cho gói mong muốn của bạn
  3. Chọn hộp cho biết bạn đã "xem xét và chấp nhận ..."
  4. Nhấp chuột phải và Sao chép địa chỉ liên kết từ nút
  5. Dán vào trình chỉnh sửa văn bản và sau đó sao chép mọi thứ SAU 'nexturl =', bắt đầu bằng 'https: //'
  6. Cập nhật URL tải xuống trong lệnh này và bạn nên truy cập:

    wget --no-check-cert -c --header "Cookie: oraclelicense = accept-securBackup-cookie" https://doad.oracle.com/otn/java/jdk/11.0.6+8/90eb79fb590d45c8971362673c5ab495/ 11.0.6_linux-x64_bin.tar.gz

Để giải thích thêm về wget, --no-check-cert phải đủ rõ ràng, nhưng nội dung tiêu đề (cho bất kỳ cuộc gọi nào) có thể được tìm thấy bằng cách sử dụng Tab Mạng của Công cụ dành cho nhà phát triển trong trình duyệt của bạn. Các công cụ phát triển rất mạnh mẽ và đáng để dành thời gian tìm hiểu. Thưởng thức.


0

@eric answer đã lừa tôi, bạn cần chấp nhận các điều khoản trong lệnh bạn đang đặt tức là

"Cookie: oraclelicense=accept-securebackup-cookie"

vì vậy lệnh cuối cùng của bạn trông như vậy

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

Bạn có thể quyết định cập nhật phiên bản bằng cách thay đổi 8u131thành 8uXXX. rất lâu nó có sẵn trong 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

Tại sao không nhấp để tải xuống từ trình duyệt của bạn, sau đó sao chép và dán liên kết chính xác nơi nó được tải xuống, ví dụ:

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

Bạn có thể tìm ra liên kết bằng cách nhìn vào tab mạng của trình duyệt của bạn sau khi chấp nhận các điều khoản trong lời tiên tri và nhấp để tải xuống. F12 trong Chrome. Bọ lửa trong Firefox.


1
Bởi vì mọi người cần điều này để tự động cài đặt java trên các máy chủ có tập lệnh bash.
Saša ijak
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.