webupd8 oracle-java-7-installer与404失败

我试图在docker镜像中安装java7。 这种情况一直持续到几天前。 命令是:

apt-get --fix-missing update apt-get -y upgrade apt-get -y install software-properties-common add-apt-repository ppa:webupd8team/java apt-get -y upgrade apt-get -y update echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections apt-get install -y oracle-java7-installer 

输出是:

  Setting up oracle-java7-installer (7u80+7u60arm-0~webupd8~1) ... debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (This frontend requires a controlling tty.) debconf: falling back to frontend: Teletype Downloading Oracle Java 7... --2017-05-29 16:54:29-- http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz Resolving download.oracle.com (download.oracle.com)... 104.96.220.162, 104.96.220.106 Connecting to download.oracle.com (download.oracle.com)|104.96.220.162|:80... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: (REMOVING HTTPS BECAUSE I DON'T HAVE ENOUGH REP POINTS)://edelivery.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz [following] --2017-05-29 16:54:29-- (REMOVING HTTPS BECAUSE I DON'T HAVE ENOUGH REP POINTS)://edelivery.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz Resolving edelivery.oracle.com (edelivery.oracle.com)... 23.196.115.62, 2600:1408:10:184::2d3e, 2600:1408:10:185::2d3e Connecting to edelivery.oracle.com (edelivery.oracle.com)|23.196.115.62|:443... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: (REMOVING HTTP BECAUSE I DON'T HAVE ENOUGH REP POINTS)//download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1496076904_47c6805122b1f8131f00e210452116ca [following] --2017-05-29 16:54:29-- http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1496076904_47c6805122b1f8131f00e21 0452116ca Connecting to download.oracle.com (download.oracle.com)|104.96.220.162|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2017-05-29 16:54:31 ERROR 404: Not Found. download failed Oracle JDK 7 is NOT installed. dpkg: error processing package oracle-java7-installer (--configure): subprocess installed post-installation script returned error exit status 1 Setting up gsfonts (1:8.11+urwcyr1.0.7~pre44-4.2ubuntu1) ... Setting up x11-common (1:7.7+1ubuntu8.1) ... debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (This frontend requires a controlling tty.) debconf: falling back to frontend: Teletype invoke-rc.d: policy-rc.d denied execution of start. Processing triggers for ureadahead (0.100.0-16) ... Setting up xfonts-encodings (1:1.0.4-1ubuntu1) ... Setting up xfonts-utils (1:7.7+1) ... Setting up gsfonts-x11 (0.22) ... Processing triggers for libc-bin (2.19-0ubuntu6.9) ... Errors were encountered while processing: oracle-java7-installer E: Sub-process /usr/bin/dpkg returned an error code (1) The command '/bin/sh -c apt-get install -y oracle-java7-installer' returned a non-zero code: 100 

导致错误的原因是Oracle从其站点中删除了二进制文件。 虽然这些版本不久前已被弃用,但二进制文件仍然存在,直到最近才下载。 但他们现在删除了它。

这在2010年6月2日的webupd8网站上有所解释。 Oracle的下载页面说

2015年4月之后发布的Java SE 7更新以及2013年4月之后发布的Java SE 6更新仅通过My Oracle Support(需要支持登录)提供给Oracle客户。

Java SE Advanced为用户提供商业function,访问关键错误修复,安全修复和一般维护“。

请查看http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html上的详细信息。

由于Oracle已移动下载链接并需要登录凭据才能下载旧版本的Java,请按照以下步骤安装java 7:

1)从http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html下载最新的Java版本。 您需要登录。

2)从/ var / cache / oracle-jdk7-installer /删除jdk-7uXX-linux-x64.tar.gz ,其中XX是版本号。

3)使用以下命令将下载的版本移动到/ var / cache / oracle-jdk7-installer /

 sudo mv jdk-7u(downloadedversion)-linux-x64.tar.gz /var/cache/oracle-jdk7-installer/ 

4)现在运行以下命令

 sudo apt-get install oracle-java7-installer 

正如其他答案中所提到的,Oracle要求开发人员帐户或支持合同从他们的站点下载除JRE / JDK的最新版本以外的任何内容,因为他们通常会发布一个版本来解决严重的CVE(漏洞)。

此存储库有一个脚本,允许您根据您设置的参数和环境变量下载最新版本或旧版本。

https://github.com/vjkoskela/jdk-wrapper

我想发布这里,以防任何人遇到这个问题,Oracle昨天从Java 181迁移到191。 如果您在Java 8中遇到此问题,请在此处查看修复程序,直到为Ubuntu更新了新的Java 8安装程序。

这是181到191的修复:

 cd /var/lib/dpkg/info sudo sed -i 's|JAVA_VERSION=8u181|JAVA_VERSION=8u191|' oracle-java8-installer.* sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/|' oracle-java8-installer.* sudo sed -i 's|SHA256SUM_TGZ="1845567095bfbfebd42ed0d09397939796d05456290fb20a83c476ba09f991d3"|SHA256SUM_TGZ="53c29507e2405a7ffdbba627e6d64856089b094867479edc5ede4105c1da0d65"|' oracle-java8-installer.* sudo sed -i 's|J_DIR=jdk1.8.0_181|J_DIR=jdk1.8.0_191|' oracle-java8-installer.*