通过wget在Linux上下载Java JDK将显示许可页面
当我尝试从Oracle下载Java时,我最终下载了一个页面,告诉我需要同意OTN许可条款。
抱歉!
为了从Oracle技术networking下载产品,您必须同意OTN许可条款。
确保…
- 您的浏览器具有“cookies”并启用了JavaScript。
- 您点击了您要下载的产品的“接受许可证”。
- 您在接受许可证的30分钟内尝试下载。
我如何下载和安装Java?
对JDK 9进行了更新 ,现在可以直接从java.net下载它,而无需发送头文件
wget http://download.java.net/java/GA/jdk9/9/binaries/jdk-9+181_linux-x64_bin.tar.gz
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
在上面的所有情况下,subst'i586'为'x64'下载32位版本。
- -j – >垃圾cookies
- -k – >忽略证书
- -L – >按照redirect
- -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。 你可以在这里find这个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"
请确保使用正确的下载链接replace正在下载的版本。
( 伊朗更新到我的答案,但这是澄清这一切。 )
编辑:更新为10月17日发布的Java 9.0.1
wget的
wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz
JRE 8u151(没有cookie标志):
– 32位JRE: http : //javadl.oracle.com/webapps/download/AutoDL? BundleId= 227540_e758a0de34e24606bca991d704f6dcbf
– 64位JRE: http : //javadl.oracle.com/webapps/download/AutoDL? BundleId= 227542_e758a0de34e24606bca991d704f6dcbf
有关更多信息,请参阅oracle.com和java.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)证书(主要是红帽企业Linux 6.x和诸如CentOS的朋友)。 1.13于2011年8月发布 。
要查看当前版本,请使用:
wget --version | head -1
wget --version | head -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/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz
-
-L / --location
cURL需要通过所有镜像redirect。
-
-C / --continue-at -
往上看。 cURL最后需要破折号(
-
)。 -
-b / --cookie "oraclelicense=accept-securebackup-cookie"
与
-H / --header "Cookie: ..."
,但也接受文件。 -
-O
cURL需要保存文件(请参阅作者比较更多的差异)。
从命令行下载Java一直很麻烦。 我一直在做的是使用FireFox(其他浏览器可能工作),以便在我的笔记本电脑上开始下载,暂停(在下载窗口中),使用显示的上下文菜单的“Copy Download Link”菜单项下载文件。 这个URL然后可以在Linux上用来下载相同的文件。 我预计这个url有很短的时间来生活。 丑,但总体上是成功的。
我知道Oracle尽可能使Java运行时和Java SDK尽可能地变得可能。
这里是一些命令行爱好者的指南。
对于Debian系统(在Debian
squeeze和Ubuntu
12.x +上testing)
su - echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886 apt-get update apt-get install --yes oracle-java7-installer exit
注意:如果您知道更好或更简单的方法添加评论,我会更新指南。
更新了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
最新testing,
wget – 没有cookie – 没有检查证书 – 头文件“Cookie:gpw_e24 = http%3A%2F%2Fwww.oracle.com”“ https://edelivery.oracle.com/otn-pub/java/ jdk / 7u25-b15 / jdk-7u25-linux-x64.tar.gz “
请注意,如果您关心绝对安全,证书检查将被禁用。 :)
这适用于JDK 6,您只需要将最新版本的下载urlreplace即可。
wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk6-downloads-1637591.html;" http://download.oracle.com/otn-pub/java/jdk/6u33-b03/jdk-6u33-linux-x64.bin
Oracle已经在下载链接上放置了一个预防cookie,强制您同意这些条款,即使使用Java的许可协议明确规定,仅通过使用Java,您“同意”许可证。
甲骨文希望的方法是用协议下载。 之后,这个脚本cn将被修改为您的特定的Linux
#!/bin/bash #Author: Yucca Nel http://thejarbar.org #Will restart system #Modify these variables as needed... tempWork=/tmp/work locBin=/usr/local/bin javaUsrLib=/usr/lib/jvm sudo mkdir -p $javaUsrLib mkdir -p $tempWork cd $tempWork #Extract the download tar -zxvf $downloadDir/jdk*tar.gz #Move it to where it can be found... sudo mv -f $tempWork/jdk* $javaUsrLib/ sudo ln -f -s $javaUsrLib/jdk1/bin/* /usr/bin/ #Update this line to reflect versions of JDK... export JAVA_HOME="$javaUsrLib/jdk1.7.0_03" #Extract the download tar -zxvf $tempWork/* #Move it to where it can be found... sudo mv -f $tempWork/jdk1* $javaUsrLib/ sudo ln -f -s $javaUsrLib/jdk1*/bin/* /usr/bin/ sudo rm -rf $tempWork #Update this line to reflect newer versions of JDK... export JAVA_HOME="$javaUsrLib/jdk1.7.0_03" if ! grep "JAVA_HOME=$javaUsrLib/jdk1.7.0_03" /etc/environment then echo "JAVA_HOME=$javaUsrLib/jdk1.7.0_03"| sudo tee -a /etc/environment fi exit 0
对于那些需要JCE8的人,也可以下载。
curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
要么
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
上述所有似乎假设你知道最新的Java RPM的URL …
Oracle提供了每个Java版本的最新更新的持久链接,如https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1所述; – 尽pipe您需要创build/loginOracle Support帐户。 *否则,您只能访问每个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.
我解决了这个问题(对于基于Debian的Linux发行版),使用java-package
几次(对于不同的体系结构) java-package
,然后在内部分发。
最重要的一点是这种方法总是有效的。 不pipeOracle的网页变得多么疯狂。 Oracle不能再破坏我的构build!
缺点是最初设置要多一点。
- 在浏览器中手动下载tar.gz文件(从而“接受”他们的条款)
- 运行
make-jpkg jdk-7u51-linux-x64.tar.gz
。 这会创buildoracle-java8-jdk_8_amd64.deb
- 将其分发到您的组织中
为了通过Internet进行分发,我build议使用密码保护的apt库或使用对称encryption提供原始软件包:
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"
当然,在Internet上提供(未encryption的).deb软件包可能违反了您与Oracle的许可协议,该协议规定:
…甲骨文授予您…许可证…在内部复制和使用本软件完整和未经修改,仅用于运行程序“
在接收端,如果你有一个密码保护的回购,你所需要做的就是apt-get install
。 如果你有原始软件包,请下载,解密和dpkg -i
它们。 奇迹般有效!
我为我的gentoo盒子制作了一个jdk下载脚本(特定于tar.gz)。 不需要像其他类似的脚本更新,试图“蛮力”下载最新版本的任何版本,你想要的。
用法
jdk-download< <version> <platform> [<build>] * <version> - Something like "8u40" * <platform> - Usually i586 or x64 * <build> - The internal build number used by oracle, to avoid guessing and trying to download starting from 99 to 1 (build 0, really?!!)
博客文章
来源于bitbucket
正如已经张贴在这里: 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 – 没有cookie – 头文件“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 – 没有cookie – 头文件“Cookie:gpw_e24 = xxx; oraclelicense = accept-securebackup-cookie;” -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm
大胆的部分应该被你喜欢的包所取代。
截至2017-04-25,接受的答案不适用于我。 但是,简单的解决scheme是使用-b
标志而不是--header
选项。
例如,要获得jdk-1.8_131:
version='8u131'; wget -H -O jdk-$version-linux-x64.tar.gz --no-check-certificate --no-cookies -b "oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/$version-b11/jdk-$version-linux-x64.tar.gz
这将在后台执行,将输出写入wget-log
。
尝试
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下载
wget这为我工作JDK8
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2F%www.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"
oracle-java-download是GitHub上的一个项目,它允许您为JDK 8和JDK 9创build下载链接,您可以使用这些链接进行进一步处理,例如在自动构build或部署过程中。
它需要Linux,Docker和JDK> = 8才能运行。
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"
为什么不点击从您的浏览器下载,然后复制并粘贴下载的确切链接,例如:
wget http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-linux-x64.tar.gz?AuthParam=1380225131_dd70d2038c57a4729d8c0226684xxxx
在接受oracle中的条款并单击下载后,您可以通过查看浏览器的networking选项卡来find链接。 Chrome中的F12。 Firefox中的Firebug。