自从昨天以来,我一直在试图在我的Ubuntu机器上安装JDK8,但它一直在失败。
我一直在试图运行这些命令:
sudo add-apt-repository ppa:webupd8team/java -y sudo apt-get update sudo apt-get install oracle-java8-installer sudo apt-get install oracle-java8-set-default
但我不能继续,因为当运行命令sudo apt-get install oracle-java8-installer
我所得到的是:
... Connecting to download.oracle.com (download.oracle.com)|23.215.130.99|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2017-10-18 11:07:34 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 ...
我的安装程序是一个64位的Ubuntu 14.04。
经过大量搜索后,我在Ubuntu论坛上找到了答案。
基本上,问题似乎是有一个新版本的Java和安装程序没有更新引用它。
所以这可以很容易地通过运行这些命令来解决(所有的功劳都归功于g1zmo2 ):
cd /var/lib/dpkg/info sudo sed -i 's|JAVA_VERSION=8u144|JAVA_VERSION=8u152|' oracle-java8-installer.* sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/|' oracle-java8-installer.* sudo sed -i 's|SHA256SUM_TGZ="e8a341ce566f32c3d06f6d0f0eeea9a0f434f538d22af949ae58bc86f2eeaae4"|SHA256SUM_TGZ="218b3b340c3f6d05d940b817d0270dfe0cfd657a636bad074dcabe0c111961bf"|' oracle-java8-installer.* sudo sed -i 's|J_DIR=jdk1.8.0_144|J_DIR=jdk1.8.0_152|' oracle-java8-installer.*
然后运行JDK 8安装程序命令,就像我们通常会=)
稍后在论坛帖子中指出编辑 G1zmo2 :
[…]这个命令只适用于linux-x64安装程序,看来这个sha256的值必须更新,使安装程序工作amd64
以下是我的Ubuntu Mate 16.04 x64的解决方法:
wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.tar.gz mkdir /opt/jdk sudo tar -zxf jdk-8u152-linux-x64.tar.gz -C /opt/jdk update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_152/bin/java 100 update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_152/bin/javac 100
信用于数字海洋头调整。
我相信oracle提供的链接是不正确的尝试这个“ http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz ”
上面的.gz是从URL下载的Java 8丢失。wget –header“Cookie:oraclelicense = accept-securebackup-cookie” http://download.oracle.com/otn-pub/java/jdk/8u152 -b16 / aa0333dd3019491ca4f6ddbe78cdb6d0 / JDK-8u152-Linux的x64.tar.gz
添加到@ cavpollo的答案,对于那些使用Ansible,这个任务将会让你在那里
- name: Patch Java installer shell: "{{ item }}" args: chdir: "/var/lib/dpkg/info" become: yes with_items: - sed -i 's|JAVA_VERSION=8u144|JAVA_VERSION=8u152|' oracle-java8-installer.* - sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/|' oracle-java8-installer.* - sed -i 's|SHA256SUM_TGZ="e8a341ce566f32c3d06f6d0f0eeea9a0f434f538d22af949ae58bc86f2eeaae4"|SHA256SUM_TGZ="218b3b340c3f6d05d940b817d0270dfe0cfd657a636bad074dcabe0c111961bf"|' oracle-java8-installer.* - sed -i 's|J_DIR=jdk1.8.0_144|J_DIR=jdk1.8.0_152|' oracle-java8-installer.*
Linux操作系统中java的安装过程(使用终端)
首先使用这个代码使用终端
sudo add-apt-repository ppa:webupd8team/java
其次 ,
sudo apt update; sudo apt install oracle-java8-installer
最后确认许可证,使用这个代码
sudo apt install oracle-java8-set-default
检查是否安装了Java
javac -version