无法在ubuntu 16.04上使用PPA存储库安装java8

时间:2018-01-18 10:16:50

标签: java java-8 ubuntu-16.04 apt-get

从2018年1月18日获得以下错误:

--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带来类似的错误。

请查看此问题,并告知我是否有任何解决方法

2 个答案:

答案 0 :(得分:3)

看起来,Oracle改变了政策,以便很快删除过时的更新(在这种情况下:8u151 / 8u152)。遗憾的是,ppa:webupd8team/java - 维护者尚未发布与最新JDK版本(8u161)相匹配的软件包的更新版本。但是,它们应该这样做以更改相应JDK存档的下载URL(由Oracle发布)。

如果您需要紧急更新和/或作为“临时”解决方法,您可以通过以下步骤获取最新版本的Oracle JDK:

  1. 在您的用户主目录中创建一个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' 
    
  2. 将其解压缩到tmp目录

    tar -xf jdk-8u161-linux-x64.tar.gz 
    
  3. 清除旧安装并将提取的内容移至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
    
  4. 执行命令

    sudo /etc/profile.d/jdk.sh
    
  5. 运行以下命令检查当前的java版本:

    java -version
    
  6. 注意:假设非32位系统环境,步骤1中使用的URL指向x64 JDK。您可以通过Oracle检查official download page来轻松更改它。

    希望它有所帮助(作为解决方法)。

答案 1 :(得分:1)

我之前使用过这个问题还有一个解决方法。对我来说,这是一种更简单的方法:

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