前文
总所周知,随着java版本的不断升级,jdk版本越来越高,但是互联网开发软件很多还维持在jdk1.8的时代
但是很多开源软件只至此java 11以上的版本,这就会导致很多程序上的不兼容或者报错
本文主要解决,linux不同目录下,采用不同的jdk,且不用切换jdk,极度灵活
jenv优点:简单、灵活
1. 安装JENV
官方安装文档:jEnv - Manage your Java environment
1.1 安装git
如果已经安装过git,可以跳过
apt-get update -y
apt-get install git -y
1.2 下载JENV
git clone https://github.com/jenv/jenv.git ~/.jenv
1.3 安装
这里建议不要跟着官方文档来安装,ubuntu默认的配置文件是~/.bashrc文件;centos一般是编辑/etc/profile文件
这里我们直接以ubuntu为准,vim这个文件(~/.bashrc)即可
vim ~/.bashrc
在文件下面插入一下这段脚本
#这里直接注释jdk默认环境配置,将采用jenv灵活管理jdk
#set oracle jdk environment
#export JAVA_HOME=/home/bin/jdk1.8.0_191
#export JRE_HOME=${JAVA_HOME}/jre
#export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
#export PATH=${JAVA_HOME}/bin:$PATH
# Jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
重点:如果你之前安装过jdk,并且配置过jdk的环境变量,直接注释,否则jenv会不生效
如图
1.4 生效
source ~/.bashrc
1.5 验证
jenv help
2. 灵活管理jdk
我的linux环境下,存在两个版本的jdk,分别是jdk1.8 及 jdk11
jdk1.8 目录:/home/bin/jdk1.8.0_191
jdk11 目录:/home/bin/jdk-11.0.16
2.1 jenv 添加jdk
这里,我将两个版本jdk都添加进jenv,进行管理
jenv add /home/bin/jdk1.8.0_191/
jenv add /home/bin/jdk-11.0.16/
2.2 查看
jenv versions
可以看到,两个版本jdk都已经添加近jenv的环境中了,其中11是jdk11的别名,1.8是jdk1.8的别名,其余的不用管
2.3 设置全局环境jdk
应为系统程序运行大多采用某一全局java环境,所以设置全局的java 环境
注:还是那句话,之前配置过java全局变量的脚本注释掉,并重新reload
jenv global 1.8
2.4 设置目录层级jdk
jenv local 11
执行成功后,当前目录下会生成一个.java_version的隐藏文件
2.5 校验
在指定目录下执行java -version,效果如图
至此就结束了,是不是很灵活,对于采用老版本开发java程序,却喜欢用最新版本框架时,这个太合适了