众所周知,现在下载JDK需要在下载画面点接受协议后才能下载,这样一来,在服务器上就没办法用wget直接下载。
比如我们用浏览器发现,下载某个JDK的URL如下所示:
这会如果用wget命令,则会有如下提示:wget http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-macosx-x64.dmg?AuthParam=1424237287_a04723e7db71bb5e06647180e39b7796
--2015-02-18 14:32:30-- http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-macosx-x64.dmg?AuthParam=1424237287_a04723e7db71bb5e06647180e39b7796
正在解析主机 download.oracle.com (download.oracle.com)... 72.246.56.35, 72.246.56.10
正在连接 download.oracle.com (download.oracle.com)|72.246.56.35|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 403 Forbidden
2015-02-18 14:32:31 错误 403:Forbidden。
那么如果想要下载,我们可以用下面的方法:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-macosx-x64.dmg
或者使用curl:curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-macosx-x64.dmg > jdk-8u31-macosx-x64.dmg
相关的解释:-j -> junk cookies
-k -> ignore certificates
-L -> follow redirects
-H [arg] -> headers