如何用新的 Java 安装替换错误的 Java 安装?

如何用新的 Java 安装替换错误的 Java 安装?

我最近刚刚从 17.04 升级到 17.10,但是在此过程中 ubuntu 似乎“忘记”了我的 JDK 8 安装。

我仍然可以使用 java:

olian04:~$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.17.10.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

但每当我尝试安装一个软件包,或者清除未使用的软件包时,都会看到这样的信息:

Connecting to download.oracle.com (download.oracle.com)|92.122.94.143|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-01-20 16:35:41 ERROR 404: Not Found.

download failed
Oracle JDK 8 is NOT installed.
dpkg: error processing package oracle-java8-installer (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 oracle-java8-installer
E: Sub-process /usr/bin/dpkg returned an error code (1)

所以我的问题是,我该如何解决这个问题?我要么清除旧版本并重新安装,要么将我的实际 Java 安装与 ubuntu 重新连接(“提醒”它 Java 的安装位置),要么只是留下有故障的 Java 8 安装并获取新的 Java 9。我只是不知道该怎么做……

我已经尝试过安装openjdk-9-jdk,但是由于不允许安装任何没有 Java 的软件包,所以抱怨 JDK 8 未安装......我有点没主意了......

答案1

WebUpd8 提供的 Java 8 版本 (8u151) 已过时,Oracle 不再提供该版本,因此会出现 HTTP 404(未找到)错误。以下是另一个答案提供了一个临时的解决方案:


再次出现此问题是因为版本 151 已被归档。此版本目前由 PPA 引用。您可以使用以下命令将引用更新为 161:

cd /var/lib/dpkg/info

sudo sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u161|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="6dbc56a0e3310b69e91bb64db63a485bd7b6a8083f08e48047276380a0e2021e"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_161|' oracle-java8-installer.*

然后,尝试一下sudo apt update; sudo apt upgrade

答案2

您可以尝试使用

apt-get install --fix-broken

如果这没有帮助,我们可以更深入地dpkg

dpkg -P oracle-java8-installer

或者

dpkg -r -P openjdk-8-jdk

无论精确封装名字是!你可以使用以下命令查看所有软件包

dpkg -l

以及grepJava 语言或者开发环境

一旦您删除了错误的安装并且 apt 再次内容,您可以全新安装 java8 或 java9。

相关内容