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安装路径”改为上述命令得到的路径,并保存:
如下图所示(该文件原本可能不存在,内容为空,这不影响):
接着还需要让该环境变量生效,执行如下代码:
source ~/.bashrc # 使变量设置生效
设置好后我们来检验一下是否设置正确:
如果设置正确的话,$JAVA_HOME/bin/java -version
会输出 java 的版本信息,且和 java -version
的输出结果一样,如下图所示: