如何在命令行中接受jdk的许可协议?

7
我曾经试图在我的Amazon EC2实例上安装jdk7(Linux x64 rpm)。 我使用wget和curl -o来做,但它并没有成功下载。 相反,它下载了一个错误的html文件,在其中告诉我要先接受许可协议才能下载。 我使用了这个链接http://www.oracle.com/technetwork/java/javase/downloads/jdk7u7-downloads-1836413.html来接受协议,之后我右键点击软件包并复制链接,尝试通过命令行进行下载,但失败了。 我将其下载到我的本地机器,并使用scp将其移动到EC2中的本地目录。 但是当我尝试执行它时,它抛出了以下错误:
sudo rpm -i jdk-7u7-linux-x64.rpm
Unpacking JAR files...
rt.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_07/jre/lib/rt.pack
jsse.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_07/jre/lib/jsse.pack
charsets.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_07/jre/lib/charsets.pack
tools.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_07/lib/tools.pack
localedata.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_07/jre/lib/ext/localedata.pack

我在谷歌上搜索了解决方案,并找到了这个链接:http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html

虽然上面写着:“1. 下载文件。在下载文件之前,您必须接受许可协议。”但是有没有通过命令行接受许可证的方法呢?

谢谢!

我不认为这个问题是由于无法接受许可协议引起的(那只是为了下载),我认为这与有缺陷的rpm软件包有关。在安装完该软件包后,Java是否能正常工作?您可以转到 /usr/java/jdk1.7.0_07/jre/bin 并运行java吗?


rpm包没问题。我无法直接使用终端下载jdk,而是尝试从我的本地机器通过scp到我的Amazon实例。可能是scp没有做好工作。不过,下面发布的解决方案完全有效。 - CleanSock
3个回答

7
对于我来说,以下方法有效:
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm

6

不是你的问题,而是Oracle网站改变了他们的许可策略。

阅读此博客文章以获取更多信息,并了解一些自动化的技巧。

文章底部有一个有趣的小细节:

根据Java SE的OTN BCL文档:

选择“接受许可协议”(或等效按钮) 和/或使用软件,即表示您已经阅读并同意这些条款。


是的,这样可以避开许可问题,但它并不能解决“无法打开输入文件”的问题。 - ctpenrose
@ctpenrose - 你需要按照博客文章中的步骤来解决“无法打开输入文件”的问题。 - GalacticJello
非常感谢,运行得很好。博主怎么会找到这个的?太神奇了 :) - Keerthivasan
我遇到了同样的问题:我无法从服务器下载文件。这真的很烦人,所以我使用开发人员工具检查了在接受许可证时浏览器中发生了什么 :-) 顺便说一下:http://le.kdecherf.com/post/21207105768/le-me-installing-jdk-on-three-servers - Kdecherf

0

有一个简单的方法:

wget --no-check-certificate --no-cookies --header "Cookie: gpw_e24=yippi ka yei madafaka;" http://download.oracle.com/blahblah....

你可以将任何内容作为“gpw_e24”cookie值发送。

P.D:请原谅我的英语不好,我正在尽力;-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接