簡體   English   中英

通過 wget 在 Linux 上下載 Java JDK 會顯示許可證頁面

[英]Downloading Java JDK on Linux via wget is shown license page instead

當我嘗試從 Oracle 下載 Java 時,我最終下載了一個頁面,告訴我我需要同意 OTN 許可條款。

對不起!

要從 Oracle 技術網下載產品,您必須同意 OTN 許可條款。

確定...

  • 您的瀏覽器啟用了“cookies”和 JavaScript。
  • 您單擊了要下載的產品的“接受許可”。
  • 您在接受許可后 30 分鍾內嘗試下載。

如何下載和安裝Java?

自 2021 年 7 月 27 日起適用於 JDK 16

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/16.0.2%2B7/d4a915d82b4c4fbb9bde534da945d746/jdk-16.0.2_linux-x64_bin.rpm

自 2020 年 11 月 5 日起適用於 JDK 15

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/15.0.1+9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_linux-x64_bin.rpm

自 2020 年 7 月 11 日起適用於 JDK 14

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/14.0.1+7/664493ef4a6946b186ff29eb326336a2/jdk-14.0.1_linux-x64_bin.rpm -O ~/Downloads/jdk-14.0.1_linux-x64_bin.rpm

PS:Alf 添加了這個(我):-) 這個,我不知道如何在最后評論......享受它。

針對 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 更新

焦油廣州:

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"

轉速:

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 更新

轉速:

  wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

焦油廣州:

 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

在上述所有情況下,將 'i586' 替換為 'x64' 以下載 32 位版本。

  • -j -> 垃圾餅干
  • -k -> 忽略證書
  • -L -> 按照重定向
  • -H [arg] -> 標題

curl可以代替wget

JDK 7u79 的更新

焦油廣州:

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 日的原始答復

如果您想使用wget從命令行下載 Oracle JDK,有一個解決方法。 運行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"

請務必將下載鏈接替換為您正在下載的版本的正確鏈接。

Irani更新了我的回答,但這里是為了澄清這一切。

編輯:針對Java 16.0.1更新,於2021 年 4 月 20 日發布

獲取

wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/16.0.1+9/7147401fd7354114ac51ef3e1328291f/jdk-16.0.1_linux-x64_bin.tar.gz

有關更多信息,請參閱oracle.com 中的下載。

  • -c / --continue

允許繼續未完成的下載。

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

2014 年 3 月 15 日起,此 cookie 在接受許可協議后提供給用戶,並且是訪問download.oracle.com 中的 Java 包所必需的。 2012 年 3 月 27 日的上一個(也是第一個)實現使用了 cookie gpw_e24=http%3A%2F%2Fwww.oracle.com[...] 這兩起案件均未向公眾公布。

該值不必是“ accept-securebackup-cookie ”。

不需要

  • --no-cookies

組合--no-cookies --header "Cookie: name=value"被稱為“官方” cookie 支持,但這里不是嚴格要求的。

卷曲

curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O https://download.oracle.com/otn-pub/java/jdk/16.0.1+9/7147401fd7354114ac51ef3e1328291f/jdk-16.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需要用於保存文件(更多差異請參見 [作者的比較] [8])。

從命令行下載 Java 一直很麻煩。 我一直在做的是使用 FireFox(其他瀏覽器可能工作)在我的筆記本電腦上開始下載,暫停它(在下載窗口中),使用顯示的上下文菜單的“復制下載鏈接”菜單項下載文件。 然后可以在 Linux 機器上使用此 URL 下載相同的文件。 我希望 URL 的存活時間很短。 丑陋,但總體上是成功的。

針對 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

我知道 Oracle 盡一切可能使他們的 Java 運行時和 Java SDK 盡可能地困難。

這里有一些命令行愛好者的指南。

對於類似 Debian 的系統(在Debian擠壓和Ubuntu 12.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

注意:如果您知道更好或更簡單的方法添加評論,我會更新指南。

Java SE 開發工具包 12.0.2

廣州市焦油

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

最新測試,

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" " https://edelivery.oracle.com/otn-pub/java/ jdk/7u25-b15/jdk-7u25-linux-x64.tar.gz "

請注意,如果您關心絕對安全,則會禁用證書檢查。 :)

Oracle 已在下載鏈接上放置了一個預防 cookie,以強制您同意這些條款,即使使用 Java 的許可協議明確指出,僅使用 Java 您就“同意”許可。

Oracle 想要的方法是你用協議下載它。 之后,此腳本 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

對於那些也需要 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

這適用於 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

這個命令現在可以下載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"

我沒有為每個新 Java 版本使用新鏈接或更改現有腳本,而是尋找一種更通用的方法來自動下載所需的 Java 包,然后通過yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm

我使用了一種類似於手動/用戶操作的簡單方法來查找包並下載它。 我也很確定,通過使用egrepawk等其他工具,人們會找到一種更優雅的方法來做到這一點,所以這里以它為例:

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

由於下載鏈接現在可用,您可以繼續使用wgetcurl

以上所有內容似乎都假設您知道最新 Java RPM 的 URL...

Oracle 提供每個 Java 版本的最新更新的持久鏈接,如https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 所述- 盡管您需要創建/登錄到 Oracle 支持帳戶. *否則您只能訪問每個 Java 版本的最后一個“公開”更新,例如 1.6_u45(2013 年 3 月;最新更新為 2013 年 10 月的 u65)*

一旦你知道持久鏈接,你應該能夠將其解析為真正的下載; 以下對我有用,但我還不知道“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.

正如已經在這里發布的: https : //stackoverflow.com/a/41718895/4370196

JDK 8 更新 121 的更新

由於 Oracle 在其下載鏈接中插入了一些 md5hash,因此無法自動為命令行組裝下載鏈接。

所以我修改了一些討厭的 bash 命令行來獲取最新的 jdk 下載鏈接,下載它並通過 rpm 直接安裝。 對於所有感興趣的人:

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 "Cookie: gpw_e24=xxx; oraclelicense=accept-securebackup-cookie;" -O index.html -q && grep -Eoi '"filepath":"[^"]+jdk-8u[0-9]+- linux-x64.rpm "' index.html | grep -Eoi 'http:[ ^"]+' | xargs wget --no-cookies --header "Cookie: gpw_e24=xxx; oraclelicense=accept-securebackup-cookie;" -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm

粗體部分應替換為您喜歡的包。

我通過多次使用java-package制作軟件包(對於各種體系結構),然后在內部分發它們來解決這個問題(對於基於 Debian 的 Linux 發行版)。

最大的好處是這種方法總是有效; 無論 Oracle 的網頁變得多么瘋狂。 Oracle 無法再破壞我的構建!

缺點是最初設置需要更多的工作。

  • 在瀏覽器中手動下載 tar.gz 文件(從而“接受”他們的條款)
  • 運行make-jpkg jdk-7u51-linux-x64.tar.gz 這將創建oracle-java8-jdk_8_amd64.deb
  • 在您的組織內分發

對於通過 Internet 分發,我建議使用受密碼保護的 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"

當然,在 Internet 上提供(未加密的).deb 包可能違反了您與 Oracle 的許可協議,其中規定:

... Oracle 授予您 ... 許可 ... 在內部復制和使用完整且未經修改的軟件,僅用於運行程序”

在接收端,如果你有一個受密碼保護的 apt 存儲庫,你需要做的就是apt-get install它。 如果您有原始軟件包,請下載、解密和dpkg -i它們。 奇跡般有效!

截至 2017 年 4 月 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

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"

嘗試

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 下載

我為我的 gentoo 盒子制作了一個 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?!!)

博文

bitbucket 上的來源

oracle-java-download是 GitHub 上的一個項目,它允許您為 JDK 8 和 JDK 9 創建下載鏈接,您可以將其用於進一步處理,例如在自動構建或部署過程中。

它需要 Linux、Docker 和 JDK >= 8 才能運行。

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/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm?AuthParam=1516282527_40effc70afd700effc70afd70

語境

我最近遇到了同樣的問題,盡管此頁面上的評論和其他一些評論提供了有用的提示 - 我認為最好記錄我為可能需要進一步幫助的人解決問題所采取的步驟。

系統詳情

我正在按照 pnda 安裝指南的分步說明在 AWS 上設置 PNDA:

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

我在 AWS 雲上使用 ubuntu 14.04 [免費套餐合格],並從 64 位 windows8.1 筆記本電腦運行代碼。 我正在使用 PUTTY 連接到服務器實例。 我 git 將 pnda 代碼從https://github.com/pndaproject/pnda克隆到 ubuntu 實例。

重要說明請注意,如果您計划在 AWS 上使用 Ubuntu 實例,請確保它僅為 14.04。 如果您使用版本 16,則它不起作用。 我學會了它的艱難方式!

解決步驟

那些遇到過這里討論的錯誤的人都知道 - 鏡像創建文件涉及以下步驟 -

1)運行腳本[ sudo su -s ./create_mirror.sh ]運行全鏡像創建過程

2) 該腳本依次調用其他各種腳本——其中之一是create_mirror_misc.sh 此腳本指的是pnda-static-file-dependencies.txt ,其中包含要下載的文件列表。

3) 在 pnda-static-file-dependencies.txt 的第一行是從http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz oraclelicense=accept-securebackup-cookie下載 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

我希望這是有幫助的。

你應該試試:

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

下載 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

以下是如何自己獲取命令。 這適用於任何版本:

  1. 在此處訪問包頁面: https : //www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. 單擊所需軟件包的下載鏈接
  3. 選中表示您已“查看並接受...”的框
  4. 右鍵單擊並從按鈕復制​​鏈接地址
  5. 粘貼到文本編輯器中,然后在“nexturl=”之后復制所有內容,以“https://”開頭
  6. 更新此命令中的下載 URL,您應該很高興:

    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

為了進一步解釋 wget,--no-check-certificate 應該足夠清楚,但是通過使用瀏覽器中的 Developer Tools Network Tab 可以發現標題內容(對於任何調用)。 開發人員工具功能強大,值得花時間學習。 享受。

這個問題將從 Oracle JDK 17 開始解決 -

https://www.oracle.com/java/technologies/jdk-script-friendly-urls/

最新版本的 Oracle JDK 17 可以從命令行下載,也可以通過使用下載 URL 自動在腳本和 dockerfiles 中下載,這些 URL 將提供當前的更新版本。

一個可以使用 -

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

格式以獲取最新的 17 版本

發生這種情況是因為當您在瀏覽器中單擊下載頁面上的“接受”按鈕時,該網頁會保存一個 cookie,用於在您下載文件之前檢查您的協議。 嘗試使用 wget 從命令行下載時會出現問題,這是因為沒有隨 wget 請求發送用於下載文件的 cookie 信息,因此從文件服務器的角度來看,您是一個尚未接受許可的全新用戶協議。

一種解決方案是使用 wget 實用程序的 --header 選項發送 cookie 信息(如上面其他答案中所示)。 理想情況下,如果某些內容受到保護,您可以使用 wget 提供的各種會話管理選項。 然而,對於這個特殊問題,它(目前)是通過發送帶有下載請求的Cookie標頭來解決的。

@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 只要它在回購中可用。

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"

為什么不點擊從瀏覽器下載,然后復制並粘貼下載的確切鏈接,例如:

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

在oracle中接受條款並點擊下載后,您可以通過查看瀏覽器的網絡選項卡找到鏈接。 Chrome 中的 F12。 Firefox 中的螢火蟲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM