解决官网下载jdk只有5k大小的错误
问题现象
官网 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
我选择linux x64版本:
wget --header='Cookie: oraclelicense=accept-securebackup-cookie' https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz
下载以后通过命令检查安装包大小是否符合
ls -lht
发现真的是5K
原因
在下载 jdk 的时候,事实上都会注意到一个小细节,就是你需要 Accept License Agreement,接受它的证书。
许多的其他网站里,接受许可,只是用来显示下一步的按钮,但是这里做了更多的操作。
<form name="agreementFormjdk-8u162-oth-JPR" method="post" action="radio" class="lic_form"> <input type="radio" value="on" name="agreementjdk-8u162-oth-JPR" onclick="acceptAgreement(window.self, 'jdk-8u162-oth-JPR');"> Accept License Agreement <input type="radio" value="on" name="agreementjdk-8u162-oth-JPR" onclick="declineAgreement(window.self, 'jdk-8u162-oth-JPR');" checked="checked"> Decline License Agreement </form>
可以看到在点击 Accept 的时候,会触发一个 js 的方法 acceptAgreement
在这个方法中,做了如下的事情:
function acceptAgreement(windowRef, part){ var doc = windowRef.document; disableDownloadAnchors(doc, false, part); hideAgreementDiv(doc, part); writeSessionCookie( 'oraclelicense', 'accept-securebackup-cookie' ); }
设置了一个会话 cookie,key是 oraclelicense
,值是 accept-securebackup-cookie
,这在直接使用 wget 的时候,是没有设置的。
解决方案
所以在下载的时候,wget 命令中也需要加入这个 cookie 值,命令如下即可:
wget --header='Cookie: oraclelicense=accept-securebackup-cookie' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz
附:CentOS 7 安装 配置 JAVA环境(JDK 1.8)
1.下载(见上文)
wget --header='Cookie: oraclelicense=accept-securebackup-cookie' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz
2.安装
#创建安装目录 mkdir /usr/local/java/ #解压至安装目录 tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/
3.设置环境变量
打开文件
vim /etc/profile
在末尾添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_171 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
使环境变量生效
source /etc/profile
添加软链接
ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java
检查
java -version