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

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

如何下载及安装Java?


当前回答

我解决了这个问题(针对基于Debian的Linux发行版),方法是多次使用java-package制作包(针对各种架构),然后在内部分发它们。

最大的好处是这种方法总是有效的;无论甲骨文的网页变得多么疯狂。甲骨文不能再打破我的构建!

缺点是一开始需要做更多的工作。

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

对于在互联网上发布,我建议使用密码保护的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"

当然,在互联网上提供(未加密的).deb包可能违反了您与Oracle的许可协议,该协议规定:

... Oracle授予您…许可证……为了运行程序的唯一目的而在内部复制和使用完整且未经修改的软件”

在接收端,如果你有一个密码保护的apt repo,你所需要做的就是apt-get安装它。如果您有原始包,请下载、解密并dpkg -i它们。效果好极了!

其他回答

针对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

Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F;oraclelicense = accept-securebackup-cookie " " http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm?AuthParam=1516282527_40effcfefd78d78bce12c0a4030a1b05 "

这个问题将从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个版本

下面是如何获得命令自己。 这适用于任何版本:

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选项卡可以发现头部内容(对于任何调用)。开发人员工具功能强大,非常值得花时间学习。 享受。

Try

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