ubuntu下多jdk环境轻松却换

在实际coding生活中,维护老项目与开发新项目常是并行的。快速企业java开发jdk版本,收首先要解决的问题。

今天看到一篇Blog,参考配置后完美实现了一键快速切换,nice!!!!!!

环境:

1、ubuntu 22

2、openjdk1.8、openjdk17

具体操作步骤:

1、安装openjdk(略),安装位置如下:

2、jdk17释放 jre

bin/jlink --module-path jmods --add-modules java.desktop --output jre

 

3、jenv 的安装和使用,下载

git clone https://github.com/jenv/jenv.git ~/.jenv

4、将jenv临时加入环境变量,先让其可以管理java环境

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(jenv init -)"' >> ~/.bashrc
source ~/.bashrc

5、将不同jdk加入到jenv中(add 路径写自己的哦)

jenv add /usr/lib/jvm/java-8-openjdk-amd64
jenv add /usr/lib/jvm/java-17-openjdk-amd64

检查是否加入成功

jenv versions

 6、快速调整环境变量

6.1 创建一个文件夹来存储不同jdk环境变量配置文件与切换脚本

mkdir ~/jdk_env

6.2 创建各个jdk对应的环境变量文件

openjdk8的环境变量文件:env_open_jdk_8

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

openjdk17的环境变量文件:env_open_jdk_17

JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

 6.3 创建环境变量切换脚本:

open_jdk_8.sh代码如下:

 

#!/bin/bash

echo Change JAVA_HOME Environment to Open JDK 1.8
sudo cp /home/tomcat/jdk_env/env_open_jdk_8 /etc/environment

#设置一个修改标识,.bashrc中会读取该修改标识
export ENV_CHANGE=1
source ~/.bashrc

#请注意版本号,可通过jenv versions查看
jenv global openjdk64-1.8.0.402
java -version
echo JAVA_HOME : $JAVA_HOME
echo Change Environment Done!

open_jdk_17.sh,仅需修改上面红色标注部分(略)

6.4、编辑用户环境变量文件.bashrc,在文件末尾增加如下内容:

#第一部分:增加alias,快捷命令,这里写自己的脚本位置
alias jdk8='source /home/tomcat/jdk_env/open_jdk_8.sh'
alias jdk17='source /home/tomcat/jdk_env/open_jdk_17.sh'

#第二部分:在.bashrc文件末尾增加以下内容

#我这里根据自己的需求增加了node和maven相关环境变量配置
#SET PATH FOR NODEJS
export NODE_HOME=$HOME/.node-v16
#SET PATH FOR MAVEN
export MAVEN_HOME=$HOME/.maven-3.9.6

#这里是先配置默认PATH,maven、node相关的根据自己需求来
export PATH=$MAVEN_HOME/bin:$NODE_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

PATH=$HOME/.jenv/bin:$PATH
#检查JRE_HOME的值是否已经设置好,如果未设置好,则读取一下配置
if [ "$JRE_HOME" = '${JAVA_HOME}/jre' -o "$ENV_CHANGE" = '1' ]; then
    source /etc/environment
    export ENV_CHANGE=0
fi

#增加jenv 以及 java home到 PATH
export PATH="$HOME/.jenv/bin:$JAVA_HOME/bin:$PATH"
eval "$(jenv init -)"

#执行完 上有条   eval "$(jenv init -)" 后,JAVA_HOME 会失效,需要重要加载一下JAVA环境变量
if [ -z "$JAVA_HOME" ]; then
    source /etc/environment
fi

6.5、应用测试

使环境变量生效:

source ~/.bashrc

测试jdk环境切换:

jdk8

 

完美!!!

 

参考Blog:https://blog.csdn.net/u011278722/article/details/137354015

posted @ 2024-05-08 17:09  DW039  阅读(193)  评论(0编辑  收藏  举报