当我试图从Oracle下载Java时,我最终下载了一个页面,告诉我需要同意OTN许可条款。
对不起! 为了从Oracle技术网络下载产品,您必须同意OTN许可条款。 请务必…… 你的浏览器已经启用了“cookies”和JavaScript。 您点击了希望下载的产品的“接受许可”。 在接受许可后的30分钟内尝试下载。
如何下载及安装Java?
当我试图从Oracle下载Java时,我最终下载了一个页面,告诉我需要同意OTN许可条款。
对不起! 为了从Oracle技术网络下载产品,您必须同意OTN许可条款。 请务必…… 你的浏览器已经启用了“cookies”和JavaScript。 您点击了希望下载的产品的“接受许可”。 在接受许可后的30分钟内尝试下载。
如何下载及安装Java?
当前回答
我知道Oracle竭尽所能让他们的Java运行时和Java SDK变得尽可能的难。
下面是一些命令行爱好者的指南。
对于Debian类系统(在Debian squeeze和Ubuntu 12.x+上测试)
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
注:如果你知道一个更好或更简单的方法添加评论,我会更新指南。
其他回答
截至2017-04-25,公认的答案对我不适用。然而,简单的解决方案是使用-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。
下面是如何获得命令自己。 这适用于任何版本:
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选项卡可以发现头部内容(对于任何调用)。开发人员工具功能强大,非常值得花时间学习。 享受。
上下文
我最近也遇到了同样的问题,尽管本页上的评论和一些 其他人提供了有用的提示——我认为把我为那些可能需要进一步帮助的人解决问题所采取的步骤记录下来会很好。
系统细节
我在AWS上按照PNDA安装指南的步骤安装PNDA:
https://github.com/pndaproject/pnda-guide/blob/develop/provisioning/aws/PREPARE.md
我在AWS云上使用ubuntu 14.04[免费层合格],并且正在从64位windows8.1笔记本电脑上运行代码。使用PUTTY连接服务器实例。我git从https://github.com/pndaproject/pnda克隆了pnda代码到ubuntu实例。
重要提示 请注意,如果你计划在AWS上使用Ubuntu实例,请确保它只支持14.04。如果您使用版本16,则无法正常工作。我是吃了不少苦头才学会的!
解决步骤
那些曾经遇到过这里讨论的错误的人会知道—镜像创建文件涉及以下步骤—
1)执行脚本create_mirror.sh [sudo su -s ./create_mirror.sh],运行创建全量镜像进程
2)这个脚本依次调用各种其他脚本——其中一个是create_mirror_misc.sh;该脚本引用pnda-static-file-dependencies.txt,其中包含要下载的文件列表。
3) On the very first line of the pnda-static-file-dependencies.txt is a reference to download the jdk-8u131-linux-x64.tar.gz file from http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz oraclelicense=accept-securebackup-cookie; It is at this point that my script was failing with the message Failed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries
4)我浏览到http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz页面,发现显示以下错误消息**为了从Oracle技术网络下载产品,您必须同意OTN许可条款**
5)为了解决这个问题,我对pnda-static-file-dependencies.txt做了以下修改;我添加了—无检查证书—无cookie来绕过许可条款协议条件
6)因此,修改后的代码看起来像- http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz——no-check-certificate——no-cookies oraclicense =accept-securebackup-cookie
我希望这对你有帮助。
甲骨文在下载链接上放置了一个防止cookie,迫使你同意这些条款,尽管使用Java的许可协议明确规定,只要使用Java,你就“同意”了许可。
Oracle想要的方法是你下载它的时候有一个协议。在此之后,可以针对特定的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
我解决了这个问题(针对基于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它们。效果好极了!