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

对不起! 为了从Oracle技术网络下载产品,您必须同意OTN许可条款。 请务必…… 你的浏览器已经启用了“cookies”和JavaScript。 您点击了希望下载的产品的“接受许可”。 在接受许可后的30分钟内尝试下载。

如何下载及安装Java?


当前回答

这个问题将从Oracle JDK 17开始解决

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

Oracle JDK 17的最新版本可以从命令行下载,也可以通过使用下载url自动在脚本和dockerfile中下载,该下载url将提供当时的更新版本。

你可以使用-

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

格式以获取最新的17个版本

其他回答

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

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

你应该试试:

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

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

一种解决方案是使用wget实用程序的——header选项发送cookie信息(如上面的其他答案所示)。理想情况下,如果某些内容受到保护,则可以使用wget提供的各种会话管理选项。然而,对于这个特殊的问题,(目前)通过发送下载请求的Cookie报头来解决。

此命令现已下载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"