我正在尝试在 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 H-T-T-P-S 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 H-T-T-P-S 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 H-T-T-P 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
答案1
由于 Oracle 已移动下载链接,并且需要登录凭据才能下载旧版本的 Java,请按照以下步骤安装 Java 7:
1)从下载最新的 Java 版本http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html。您需要登录。2
) 删除jdk-7uXX-linux-x64.tar.gz从/var/缓存/oracle-jdk7-安装程序/在哪里二十是版本号。3
)将下载的版本移至/var/缓存/oracle-jdk7-安装程序/使用以下命令
sudo mv jdk-7u(downloadedversion)-linux-x64.tar.gz /var/cache/oracle-jdk7-installer/
4)现在运行以下命令
sudo apt-get install oracle-java7-installer
答案2
错误的原因在于 Oracle 从其站点移除了二进制文件。虽然这些版本不久前已被弃用,但直到最近二进制文件仍可供下载。但他们现在将其移除。
webupd8 的网站于 2017 年 6 月 2 日对此进行了解释。Oracle 的下载页面说
2015 年 4 月之后发布的 Java SE 7 更新以及 2013 年 4 月之后发布的 Java SE 6 更新仅通过 My Oracle Support 提供给 Oracle 客户(需要支持登录)。
Java SE Advanced 为用户提供商业功能、关键错误修复、安全修复和常规维护”。
点击此处查看完整详情http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html。
答案3
正如其他答案中提到的那样,Oracle 需要开发者帐户或支持合同才能从其网站下载除最新版本的 JRE/JDK 之外的任何内容,因为他们通常会发布一个版本来解决严重的 CVE(漏洞)。
该存储库有一个脚本,允许您根据您设置的参数和环境变量下载最新或旧版本。
答案4
我想在这里发帖,以防有人昨天在 Oracle 从 Java 181 升级到 191 时遇到这个问题。如果你遇到这个问题Java 8敬请期待这里直到新的 Java 8 安装程序针对 Ubuntu 进行更新为止,才能进行修复。
以下是针对 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.*