当我试图从Oracle下载Java时,我最终下载了一个页面,告诉我需要同意OTN许可条款。
对不起! 为了从Oracle技术网络下载产品,您必须同意OTN许可条款。 请务必…… 你的浏览器已经启用了“cookies”和JavaScript。 您点击了希望下载的产品的“接受许可”。 在接受许可后的30分钟内尝试下载。
如何下载及安装Java?
当我试图从Oracle下载Java时,我最终下载了一个页面,告诉我需要同意OTN许可条款。
对不起! 为了从Oracle技术网络下载产品,您必须同意OTN许可条款。 请务必…… 你的浏览器已经启用了“cookies”和JavaScript。 您点击了希望下载的产品的“接受许可”。 在接受许可后的30分钟内尝试下载。
如何下载及安装Java?
当前回答
oracle-java-download是GitHub上的一个项目,允许您为JDK 8和JDK 9创建下载链接,您可以使用这些链接进行进一步处理,例如在自动构建或部署过程中。
它需要Linux、Docker和JDK >= 8才能运行。
其他回答
如上文所述: 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 --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
粗体部分应该换成你喜欢的包装
下面是如何获得命令自己。 这适用于任何版本:
Access packages page here: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html Click the download link for your desired package Check the box indicating that you have "reviewed and accept..." Right-click & Copy the link address from the button Paste into a text editor and then copy everything AFTER 'nexturl=', beginning with 'https://' Update the download URL in this command and you should be good to go: 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选项卡可以发现头部内容(对于任何调用)。开发人员工具功能强大,非常值得花时间学习。 享受。
(Irani更新了我的答案,但在这里澄清一下。)
编辑:针对Java 17.0.1更新,于2021年10月19日发布
Wget
wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
更多信息请参见oracle.com上的下载。
-c /——继续
允许继续未完成的下载。
——header "Cookie: oracelicense =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。
不是必需的
——无cookie
“Cookie: name=value”标题的组合“no-cookies”作为“官方”Cookie支持被提到,但在这里并不是严格要求的。
cURL
curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
-L /——位置
需要cURL重定向通过所有镜像。
-c /——continue-at -
见上图。cURL最后需要破折号(-)。
"避风头"饼干
与-H /——header "Cookie:…"相同,但也接受文件。
-O
cURL保存文件所必需的(参见[作者的比较][8]了解更多差异)。
对于需要JCE8的用户,也可以下载JCE8。
curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
Or
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
@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来决定更新版本。只要它在回购中可用。