无法在 ubuntu 16.04 上使用 PPA 存储库安装 java8
Unable to install java8 using PPA repository on ubuntu 16.04
低于 2018 年 1 月 17 日的错误:
--2018-01-18 09:59:52-- http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz
Resolving download.oracle.com (download.oracle.com)... 104.94.43.14
Connecting to download.oracle.com (download.oracle.com)|104.94.43.14|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
--2018-01-18 09:59:52-- http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz?AuthParam=1516269712_4add28cbea8b722e5136a80b8de32670
Connecting to download.oracle.com (download.oracle.com)|104.94.43.14|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
我们正在执行以在 Ubuntu 上安装 java8 的命令:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
java7 和 java9 也出现类似错误。
请查看此问题,如果有解决方法请告诉我
看来,Oracle 最近更改了删除过时更新的策略(在本例中为:8u151/8u152)。遗憾的是,ppa:webupd8team/java
-维护者尚未发布与最新 JDK 版本 (8u161) 相匹配的软件包更新版本。但是,他们应该这样做以更改相应 JDK 档案(由 Oracle 发布)的下载 URLs。
如果您需要紧急更新 and/or 作为 "temporary" 解决方法,您可以通过以下步骤获取最新版本的 Oracle JDK:
在您的用户主目录中创建一个 tmp 目录并通过 wget
.
下载当前的 JDK 更新 161
mkdir ~/tmp
cd tmp
wget --continue --no-check-certificate --header "Cookie: oraclelicense=a" 'http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz'
解压到tmp
目录
tar -xf jdk-8u161-linux-x64.tar.gz
清除旧安装并将提取到 jdk1.8...
的内容移动到系统范围的 JDK 安装目录:
sudo rm -R /usr/lib/jvm/java-8-oracle
sudo mkdir /usr/lib/jvm/java-8-oracle
sudo mv jdk1.8.0_161/* /usr/lib/jvm/java-8-oracle
sudo chown -R root:root /usr/lib/jvm/java-8-oracle
运行:
sudo /etc/profile.d/jdk.sh
通过运行检查当前java版本:
java -version
请注意:假设非 32 位系统环境,步骤 1 中使用的 URL 指向 x64
JDK。您可以通过检查 Oracle 的 official download page 轻松更改它。
希望它有所帮助(作为解决方法)。
我之前使用过另一种解决此问题的方法。对我来说,这是更简单的方法:
apt-get install oracle-java8-installer -y oracle-java8-set-default -y || true
cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u162|' 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/8u162-b12/0da788060d494f5095bf8624735fa2f1/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="68ec82d47fd9c2b8eb84225b6db398a72008285fafc98631b1ff8d2229680257"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_162|' oracle-java8-installer.*
apt-get install oracle-java8-installer oracle-java8-set-default -y
最初的解决方案发布于此:https://ubuntuforums.org/showthread.php?t=2374686&page=4&p=13731177#post13731177
低于 2018 年 1 月 17 日的错误:
--2018-01-18 09:59:52-- http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz
Resolving download.oracle.com (download.oracle.com)... 104.94.43.14
Connecting to download.oracle.com (download.oracle.com)|104.94.43.14|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
--2018-01-18 09:59:52-- http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz?AuthParam=1516269712_4add28cbea8b722e5136a80b8de32670
Connecting to download.oracle.com (download.oracle.com)|104.94.43.14|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
我们正在执行以在 Ubuntu 上安装 java8 的命令:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
java7 和 java9 也出现类似错误。
请查看此问题,如果有解决方法请告诉我
看来,Oracle 最近更改了删除过时更新的策略(在本例中为:8u151/8u152)。遗憾的是,ppa:webupd8team/java
-维护者尚未发布与最新 JDK 版本 (8u161) 相匹配的软件包更新版本。但是,他们应该这样做以更改相应 JDK 档案(由 Oracle 发布)的下载 URLs。
如果您需要紧急更新 and/or 作为 "temporary" 解决方法,您可以通过以下步骤获取最新版本的 Oracle JDK:
在您的用户主目录中创建一个 tmp 目录并通过
下载当前的 JDK 更新 161wget
.mkdir ~/tmp cd tmp wget --continue --no-check-certificate --header "Cookie: oraclelicense=a" 'http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz'
解压到
tmp
目录tar -xf jdk-8u161-linux-x64.tar.gz
清除旧安装并将提取到
jdk1.8...
的内容移动到系统范围的 JDK 安装目录:sudo rm -R /usr/lib/jvm/java-8-oracle sudo mkdir /usr/lib/jvm/java-8-oracle sudo mv jdk1.8.0_161/* /usr/lib/jvm/java-8-oracle sudo chown -R root:root /usr/lib/jvm/java-8-oracle
运行:
sudo /etc/profile.d/jdk.sh
通过运行检查当前java版本:
java -version
请注意:假设非 32 位系统环境,步骤 1 中使用的 URL 指向 x64
JDK。您可以通过检查 Oracle 的 official download page 轻松更改它。
希望它有所帮助(作为解决方法)。
我之前使用过另一种解决此问题的方法。对我来说,这是更简单的方法:
apt-get install oracle-java8-installer -y oracle-java8-set-default -y || true
cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u162|' 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/8u162-b12/0da788060d494f5095bf8624735fa2f1/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="68ec82d47fd9c2b8eb84225b6db398a72008285fafc98631b1ff8d2229680257"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_162|' oracle-java8-installer.*
apt-get install oracle-java8-installer oracle-java8-set-default -y
最初的解决方案发布于此:https://ubuntuforums.org/showthread.php?t=2374686&page=4&p=13731177#post13731177