当我试图从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个版本

其他回答

我解决了这个问题(针对基于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它们。效果好极了!

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

适用于2021年12月23日的JDK 17

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/java/17/archive/jdk-17.0.1_linux-x64_bin.rpm

适用于2021年7月27日的JDK 16

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/16.0.2%2B7/d4a915d82b4c4fbb9bde534da945d746/jdk-16.0.2_linux-x64_bin.rpm

适用于2020年11月5日的JDK 15

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/15.0.1+9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_linux-x64_bin.rpm

适用于JDK 14 (07-11-2020)

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/14.0.1+7/664493ef4a6946b186ff29eb326336a2/jdk-14.0.1_linux-x64_bin.rpm -O ~/Downloads/jdk-14.0.1_linux-x64_bin.rpm

附:Alf加了这个(我):-)这个,我不知道怎么在最后评论…享受它。

更新为Oracle JDK 11

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

针对JDK 10.0.2更新

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz

针对JDK 10.0.1更新

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 9更新 看起来你现在可以直接从java.net下载它,而不需要发送头文件

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

为JDK 8u191更新

焦油广州:

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;" "https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz"

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;" "https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-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

焦油广州:

 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

使用旋度的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 -> follow重定向 - h [arg] ->头

Curl可以用来代替wget。

更新JDK 7u79

焦油广州:

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

使用旋度的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下载站点

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"

请确保将下载链接替换为您正在下载的版本的正确链接。

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

以上所有内容似乎都假设您知道最新Java RPM的URL……

Oracle提供了到每个Java版本最新更新的持久链接 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 -尽管您需要创建/登录到Oracle支持帐户。*否则,您只能访问每个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.