OpenJDK官网给出的安装方法
我的系统是CentOS,属于Red Hat的一种,所以使用第二种方法安装
查询yum源中的jdk版本
yum list | grep jdk
安装openjdk1.8
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
根据第一张图的官方说明,java-1.8.0-openjdk只是运行环境,如果想要开发java程序需要安装java-1.8.0-openjdk-devel
安装完成后,java -version看一下,可以看到版本号
获取JAVA_HOME
dirname $(readlink $(readlink $(which java)))
去掉后面的/jre/bin,获取到的JAVA_HOME是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
配置环境变量
vi /etc/profile.d/jdk_export.sh
内容如下
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
保存后执行这个脚本
source /etc/profile.d/jdk_export.sh
立即生效
配置成功后可以echo输出环境变量
echo $JAVA_HOME
关于/etc/profile文件与/etc/profile.d/的区别
网上都可以查到:
1. 两个文件都是设置环境变量文件的,/etc/profile是永久性的环境变量,是全局变量,/etc/profile.d/设置所有用户生效
2. /etc/profile.d/比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d/下对应的shell脚本即可,不用 像/etc/profile需要改动此文件
当用户登录Linux时,系统会调用执行/etx/profile这个文件,在这个文件中会循环调用/etc/profile.d/下的.sh脚本
如下图:
在/etc/profile.d/下使用sh脚本设置环境变量会更方便