通过wget在Linux上下载Java JDK会显示在许可证页面上


615

当我尝试从Oracle下载Java时,我却最终下载了一个页面,告诉我我需要同意OTN许可条款。

抱歉!

为了从Oracle技术网下载产品,您必须同意OTN许可条款。

确保...

  • 您的浏览器启用了“ cookies”并启用了JavaScript。
  • 您单击了您要下载的产品的“接受许可”。
  • 您在接受许可后的30分钟内尝试下载。

如何下载和安装Java?


这个问题是热门话题,因为它与开发人员如何安装开发套件有关。为此,请重新打开它。
乔治·斯托克,

Answers:


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

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"

千次曝光收益:

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

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

使用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的更新

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

使用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]")似乎可以正常工作。你能确认一下吗?
2014年

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的 1.12及以上,这是缺少SAN支持(主要是RHEL / CentOS的6.x的)。该卷曲的版本是: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
挪威

3
我尝试了新的121 VERSON与URL download.oracle.com/otn-pub/java/jdk/8u121-b13/...,但它似乎并没有工作。任何想法?
南阮

3
收到错误404:JDK 11找不到,可能是错误的URL?
Tien Dung Tran

2
更新的JDK的Oracle解决方案11不工作了
邦巴

247

Irani更新了我的答案,但这是为了澄清所有问题。

编辑:针对Java 11.0.1更新,于2018年10月16日发布

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(无cookie标志): http
://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c有关更多信息,请参见oracle.comjava.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”。

Wget <1.13所需

  • --no-check-certificate

    wget 1.12和更早版本中需要,它们 支持 使用者备用名称(SAN)证书(主要是Red Hat Enterprise Linux 6.x和朋友,例如CentOS)。1.13已发布年8月。

    要查看当前版本,请使用: wget --version | head -1

不需要

  • --no-cookies

    该组合--no-cookies --header "Cookie: name=value"被称为“ 官方 ” cookie支持,但此处并非严格要求。

卷曲

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 / --continue-at -

    往上看。cURL -的末尾需要破折号()。

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

    与相同-H / --header "Cookie: ...",但也接受文件。

  • -O

    cURL保存文件所必需(更多差异请参见作者的比较)。


2
“前面的破折号”应该是“在选项的任一种形式之后的破折号”,但这是一个很好的总结。
Alex Dupuy 2014年

1
好吧,我将其更改为“ cURL最后需要破折号(-)。 ”应该很清楚,flag以命令的其他形式已经显示为。
2014年

1
我尝试使用URLdownload.oracle.com/otn-pub/java/jdk/8u121-b13/…来测试新的121版本,但是它似乎不起作用。任何想法?
南阮

1
似乎不适用于旧版本。我无法下载8u121。可能是因为Downloading these releases requires an oracle.com account。任何解决方法?
ALex_hha

1
我们使用docker,这就是为什么我们需要使用特定版本的Java。是的,我可以在一些ftp上找到该文件,但是我刚才提到,从现在起,如果没有他们的帐户,您将无法从该站点下载以前的版本
ALex_hha

35

从命令行下载Java一直很麻烦。我一直在做的工作是使用FireFox(其他浏览器可能会工作)在笔记本电脑上开始下载,暂停下载(在“下载”窗口中),并使用显示在上下文菜单中的“复制下载链接”菜单项下载文件。然后可以在Linux机器上使用此URL下载相同的文件。我希望该网址的生存时间很短。难看,但总体上成功。


是的。真好 我有我的网址一样download.oracle.com/otn-pub/java/jdk/7u9-b05/...
Mukus

3
这是一个有趣的问题,但不能回答问题。单击FireFox与“自动下载”不兼容。
斯特凡纳·古里科

不像今天的浏览器(复数)那样麻烦(翻译:不可能)。大约10%到20%的时间,Oracle的服务器将断开连接,使我的下载被截断了。CLI工具至少会从停止的位置重试,最终其中一个运行将完成,而不会超时/拒绝。
Roboprog

优秀的!查询参数AuthParam与Oracle检查用户是否同意许可有关。
ASGS

今天只有解决方案对我有用。上面所有带有accept cookie参数的wget技巧都无效。
萨德·本布兹

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
Yoraco Gonzales

19

我知道Oracle使一切成为可能,使得它们的Java Runtime和Java SDK尽可能地困难。

这是命令行爱好者的一些指南。

对于类似Debian的系统(在Debiansqueeze和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月2日起,其他方法很难随不同版本进行调整。无论当前版本是什么,此方法都可以使用,并且可以使用“ --yes”之类的apt-get选项自动/脚本/自动运行。
斯特凡纳·古里科

在带有--yes, --assume-yes, --force-yes选项的oracle-java8-installer中尝试了这种方法, 但是每次安装都希望我接受Enter键的许可协议。
德雷(Drey)

9

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

为什么--no-check-certificate呢?如果没有该开关,它就可以正常工作,因此就安全性而言,不应使用它,尤其是当它已过时时。
tymik


6

Oracle已在下载链接上放置了预防cookie,以迫使您同意这些条款,即使使用Java的许可协议明确指出,仅通过使用Java即表示您“同意”许可。

Oracle想要的方法是您通过协议下载它。之后,针对您的特定Linux修改此脚本cn

#!/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,并且您希望以非标准的方式/地点以及其他方式安装它。更好的答案是“只要遵循下载网站上的安装说明” ...除非您使用的是Ubuntu,在这种情况下,还有其他方法可以做到。
Stephen C

8
当问题标题包括Linux时,答案假定为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

这可行,但是我不能选择6u48,因为您拥有6u33-b03的部分。
雅各布·菲利普斯

2013年11月2日,无法执行此操作。下载HTML注册页面而不是文件。
斯特凡纳·古里科

5

此命令现在(2018-09-06)可以下载jdk8 tgz软件包,祝您好运!

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

我使用了一种类似于手动/用户操作的琐碎方法来查找软件包并下载。我也敢肯定,人们会发现一个更优雅的方式通过使用其他工具,如这样做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

由于下载链接现在可用,因此可以按wget或继续操作curl


3

以上所有这些似乎都假设您知道最新的Java RPM的URL。

Oracle提供了https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1中记录的每个Java版本的最新更新的永久链接。 -尽管您需要创建/登录到Oracle支持帐户。*否则,您只能访问每个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。
里克·莫里茨

3

正如已经在这里发布的那样: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'“文件路径”:“ [^”] + 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

加粗部分应该被包自己的喜好进行更换。


是的,组装链接不再那么容易了。我在bash脚本中使用了类似的方法来获取版本8和版本9的最新JRE和JDK下载链接。可以在此线程中找到答案
U880D

2

我解决了这个问题(针对基于Debian的Linux发行版),方法是使用java-package几次(针对各种体系结构)制作软件包,然后在内部进行分发。

最大的好处是该方法始终有效;无论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 repo,则只需要做apt-get install。如果您有原始软件包,请下载,解密并dpkg -i对其进行解密。奇迹般有效!


2
因此这就是兑现许可证的方式。这真棒:-)
Kowser 2014年

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

我为gentoo盒制作了一个jdk下载脚本(特定于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


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云上使用ubuntu 14.04 [符合免费套餐资格],并从64位Windows8.1笔记本电脑运行代码。我正在使用PUTTY连接到服务器实例。我将pnda代码从https://github.com/pndaproject/pnda克隆到了ubuntu实例。

重要说明 请注意,如果您打算在AWS上使用Ubuntu实例,请确保仅14.04。如果使用版本16,则无法使用。我很难学!

解决步骤

那些曾经遇到过这里所讨论的错误的人会知道-镜像创建文件涉及以下步骤-

1)运行脚本create_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

发生这种情况的原因是,当您在浏览器中单击下载页面上的“接受”按钮时,该网页会保存一个cookie,用于在您下载文件之前检查您的协议。尝试使用wget从命令行下载时会出现问题,这是因为没有与wget请求一起发送的cookie信息来下载文件,因此从文件服务器的角度来看,您是一个全新的用户,尚未接受许可证协议。

一种解决方案是使用wget实用程序的--header选项发送cookie信息(如上面其他答案所示)。理想情况下,如果某些内容受到保护,则可以使用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. 粘贴到文本编辑器中,然后在“ 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应该足够清楚,但是可以使用浏览器中的“开发人员工具网络”选项卡发现标头内容(用于任何调用)。开发人员工具功能强大,非常值得花时间学习。请享用。


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

您可以决定更改8u131为来更新版本8uXXX。只要它在仓库中可用


-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。
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.