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

问题

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

对不起!要从Oracle Technology Network下载产品,你必须同意OTN许可条款。请确保...你的浏览器启用了"cookies"和JavaScript。你单击了要接受的产品的"接受许可"。你在接受许可后的30分钟内尝试下载。

我如何下载和安装Java?


#1 热门回答(1501 赞)

更新为JDK 10

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 9it看起来你现在可以直接从java.net下载它而无需发送标题

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

更新为JDK 8u171
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;" "http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.rpm"

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

在上面的所有情况下,将"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 download site
从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"

请务必使用正在下载的版本替换下载链接。


#2 热门回答(228 赞)

(Irani更新了我的答案,但这里是为了澄清一切。)

###编辑:针对Java 10.0.1更新,于4月18日发布

Wget

wget -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

JRE 8u171(无cookie标志):http://javadl.oracle.com/webapps/download/AutoDL?BundleId=233162_512cd62ec5174c3487ac17c61aaa89e8
有关更多信息,请参阅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于2011年8月发布。要查看当前版本,请使用:wget --version |头-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/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz
  • -L / --location cURL重定向到所有镜像所必需的。
  • -C / - 继续 - 见 - 见上文。 cURL最后要求破折号( - )。
  • -b / --cookie"oraclelicense = accept-securebackup-cookie"与-H / --header"Cookie:..."相同,但也接受文件。
  • -O cURL需要保存文件(有关更多差异,请参阅作者的比较)。

#3 热门回答(23 赞)

从命令行下载Java总是很麻烦。我一直在做的是使用FireFox(其他浏览器可能有效)在我的笔记本电脑上启动下载,暂停它(在下载窗口中),使用显示的上下文菜单中的"复制下载链接"菜单项下载文件。然后可以在Linux机器上使用此URL来下载相同的文件。我希望URL的生存时间很短。丑,但一般都很成功。