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

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

抱歉!

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

确保…

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

我如何下载和安装Java?

对JDK 9进行更新 ,现在可以直接从java.net下载它,而无需发送头文件

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

JDK 8u151进行了更新

TAR GZ:

 wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz 

JDK 8u151进行了更新

TAR GZ:

 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/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz" 

RPM:

 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/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-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 

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 

在上面的所有情况下,subst'i586'为'x64'下载32位版本。

  • -j – >垃圾cookies
  • -k – >忽略证书
  • -L – >按照redirect
  • -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。 你可以在这里find这个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" 

请确保使用正确的下载链接replace正在下载的版本。

伊朗更新到我的答案,但这是澄清这一切。

编辑:更新为10月17日发布的Java 9.0.1

wget的

 wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz 

JRE 8u151(没有cookie标志):
32位JRE: http : //javadl.oracle.com/webapps/download/AutoDL? BundleId= 227540_e758a0de34e24606bca991d704f6dcbf
64位JRE: http : //javadl.oracle.com/webapps/download/AutoDL? BundleId= 227542_e758a0de34e24606bca991d704f6dcbf
有关更多信息,请参阅oracle.com和java.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)证书(主要是红帽企业Linux 6.x和诸如CentOS的朋友)。 1.13于2011年8月发布 。

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

不需要

  • --no-cookies

    --no-cookies --header "Cookie: name=value"被称为” 官方 “cookie支持,但这里并不严格要求。

curl

 curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz 
  • -L / --location

    cURL需要通过所有镜像redirect。

  • -C / --continue-at -

    往上看。 cURL最后需要破折号( - )。

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

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

  • -O

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

从命令行下载Java一直很麻烦。 我一直在做的是使用FireFox(其他浏览器可能工作),以便在我的笔记本电脑上开始下载,暂停(在下载窗口中),使用显示的上下文菜单的“Copy Download Link”菜单项下载文件。 这个URL然后可以在Linux上用来下载相同的文件。 我预计这个url有很短的时间来生活。 丑,但总体上是成功的。

我知道Oracle尽可能使Java运行时和Java SDK尽可能地变得可能。

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

对于Debian系统(在Debian squeeze和Ubuntu 12.x +上testing)

 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 

注意:如果您知道更好或更简单的方法添加评论,我会更新指南。

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

最新testing,

wget – 没有cookie – 没有检查证书 – 头文件“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 “

请注意,如果您关心绝对安全,证书检查将被禁用。 :)

这适用于JDK 6,您只需要将最新版本的下载urlreplace即可。

 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 

Oracle已经在下载链接上放置了一个预防cookie,强制您同意这些条款,即使使用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 

对于那些需要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 

上述所有似乎假设你知道最新的Java RPM的URL …

Oracle提供了每个Java版本的最新更新的持久链接,如https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1所述; – 尽pipe您需要创build/loginOracle 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. 

我解决了这个问题(对于基于Debian的Linux发行版),使用java-package几次(对于不同的体系结构) java-package ,然后在内部分发。

最重要的一点是这种方法总是有效的。 不pipeOracle的网页变得多么疯狂。 Oracle不能再破坏我的构build!

缺点是最初设置要多一点。

  • 在浏览器中手动下载tar.gz文件(从而“接受”他们的条款)
  • 运行make-jpkg jdk-7u51-linux-x64.tar.gz 。 这会创buildoracle-java8-jdk_8_amd64.deb
  • 将其分发到您的组织中

为了通过Internet进行分发,我build议使用密码保护的apt库或使用对称encryption提供原始软件包:

 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上提供(未encryption的).deb软件包可能违反了您与Oracle的许可协议,该协议规定:

…甲骨文授予您…许可证…在内部复制和使用本软件完整和未经修改,仅用于运行程序“

在接收端,如果你有一个密码保护的回购,你所需要做的就是apt-get install 。 如果你有原始软件包,请下载,解密和dpkg -i它们。 奇迹般有效!

我为我的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

正如已经张贴在这里: https : //stackoverflow.com/a/41718895/4370196

更新JDK 8 Update 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'| (head -n 1)| awk'{print'http: //www.oracle.com “$ 1}'| xargs wget – 没有cookie – 头文件“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 – 没有cookie – 头文件“Cookie:gpw_e24 = xxx; oraclelicense = accept-securebackup-cookie;” -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm

大胆的部分应该被你喜欢的包所取代。

截至2017-04-25,接受的答案不适用于我。 但是,简单的解决scheme是使用-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 --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下载

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" 

oracle-java-download是GitHub上的一个项目,它允许您为JDK 8和JDK 9创build下载链接,您可以使用这些链接进行进一步处理,例如在自动构build或部署过程中。

它需要Linux,Docker和JDK> = 8才能运行。

 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中的条款并单击下载后,您可以通过查看浏览器的networking选项卡来find链接。 Chrome中的F12。 Firefox中的Firebug。