Download failed : Oracle JDK 7 is NOT installed,解决oracle jdk7的问题

先了解下概念:

jdk(java development kit),就是java的开发工具集,顾名思义就是做开发用的,其中包括javac,也就是java compiler等。
jre(java runtime environment),就是java程序的运行环境。所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂的,而这个文件是给jvm(java的虚拟机)用的,由jvm进行解释后形成机器语言给计算机。而这个jvm就在jre中,也就是说java程序的运行要有jre来担当。
所以jdk和jre的区别就是一个用于开发,一个用于运行,联系就是它们都是java开发者所必备的。
JDK > JRE,也就是说JDK已经包含了JRE,安装JDK时候如果没有JRE,会自动安上

ubuntu本地安装东西的时候,老是会遇到:

download failed
Oracle JDK 7 is NOT installed.
dpkg: error processing oracle-java7-installer (--configure):
 subprocess installed post-installation script returned error exit status 1

官网看,不再支持6和7了:

安装ORACLE JAVA 8

INSTALL ORACLE JAVA 8 IN UBUNTU OR LINUX MINT VIA PPA REPOSITORY [JDK8]

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

ok

dahu@dahu-OptiPlex-3046:~$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

如果还不是,可能本地装了其他版本的java,

查看java程序的安装位置:

dahu@dahu-OptiPlex-3046:~$ whereis java
java: /usr/bin/java /usr/share/java /opt/jdk1.8.0_72/bin/java /usr/lib/jvm/java-8-oracle/bin/java /usr/lib/jvm/java-8-oracle/jre/bin/java /usr/share/man/man1/java.1.gz

查看环境变量位置,如果出错,可能是环境变量里,先放的位置的java程序被执行了,如下,/usr/local/jvm/jdk8/bin 这里的java先被执行了,而我刚刚装的/usr/lib/jvm/java-8-oracle/bin在后面,这也是排查错误的一个方式

dahu@dahu-OptiPlex-3046:~$ echo $PATH
/usr/local/jvm/jdk8/bin:/home/dahu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

也可以查看看.bashrc文件,设置javahome位置

dahu@dahu-OptiPlex-3046:~$ tail -n3 ~/.bashrc
export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

安装openjdk

这个并不能解决开头的错误,只是装另一个jdk而已,参考的是给力星hadoop的安装教程

Java环境可选择 Oracle 的 JDK,或是 OpenJDK,按http://wiki.apache.org/hadoop/HadoopJavaVersions中说的,新版本在 OpenJDK 1.7 下是没问题的。为图方便,这边直接通过命令安装 OpenJDK 7。

sudo apt-get install openjdk-7-jre openjdk-7-jdk

安装好 OpenJDK 后,需要找到相应的安装路径,这个路径是用于配置 JAVA_HOME 环境变量的。执行如下命令:

dpkg -L openjdk-7-jdk | grep '/bin/javac'

该命令会输出一个路径,除去路径末尾的 “/bin/javac”,剩下的就是正确的路径了。如输出路径为 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac,则我们需要的路径为 /usr/lib/jvm/java-7-openjdk-amd64。

接着配置 JAVA_HOME 环境变量,为方便,我们在 ~/.bashrc 中进行设置(扩展阅读: 设置Linux环境变量的方法和区别):

vim ~/.bashrc

在文件最前面添加如下单独一行(注意 = 号前后不能有空格),将“JDK安装路径”改为上述命令得到的路径,并保存:

export JAVA_HOME=JDK安装路径

如下图所示(该文件原本可能不存在,内容为空,这不影响):

配置JAVA_HOME变量

配置JAVA_HOME变量

接着还需要让该环境变量生效,执行如下代码:

source ~/.bashrc # 使变量设置生效

设置好后我们来检验一下是否设置正确:

echo $JAVA_HOME # 检验变量值
java -version
$JAVA_HOME/bin/java -version # 与直接执行 java -version 一样

如果设置正确的话,$JAVA_HOME/bin/java -version 会输出 java 的版本信息,且和 java -version 的输出结果一样,如下图所示:

成功配置JAVA_HOME变量

成功配置JAVA_HOME变量

原文地址:https://www.cnblogs.com/dahu-daqing/p/7327547.html