linux下jdk多版本管理
linux下jdk多版本管理
项目开发中,不管是哪种语言都避免不了多个版本环境管理问题(本文虽然以jdk为例来写的,但不仅限于jdk),如何能做到快速的环境升级与切换确实是一件深思的事!
安装jdk
实验安装两个版本:
下载
- wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
- wget http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz
安装
我把它安装到/opt中。
- tar -zxvf jdk-7u80-linux-x64.tar.gz
- 在/opt 创建目录:sudo mkdir java
- sudo mv jdk1.7.0_80 /opt/java
jdk8的方式也是一样。
创建软连接
- sudo ln -s jdk1.7.0_80 jdk
- 默认使用jdk7
更改环境变量
-
echo $PATH 输出下,其实这个相当于window系统下的path
-
cd ~ 进入到家目录
-
sudo vi .bashrc
-
最后加入:export PATH=/opt/java/jdk/bin:$PATH
-
source .bashrc
-
此时直接可以输出:java -verson,为java7
直接在 /etc/profile修改即可:
export JAVA_HOME=/opt/java/
export PATH=$JAVA_HOME/bin:$PATH
如果有天环境要做升级的话,比如要把jdk7升级到jdk8,我们只需要更改软连接地址:
- 把原来的jdk软连接删除掉
- 重新生成:sudo ln -s jdk1.8.0_144 jdk
- 此时已经升级完成
综述
以上版本管理的方式在linux中随处可见,比如python都是采用软连接的形式。
基于jenv工具管理
- git clone https://github.com/gcuisinier/jenv.git ~/.jenv
- cd ~ 会发现多出一个文件夹.jenv,这个就是jenv的软件包
-
把jenv目录导入到环境变量
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
此时输入:jenv 会输出信息:jenv 0.4.3-18-g66bb5b1
以上已经安装了jdk,我们只需要把jdk加入到jenv即可:
- jenv add /opt/jdk1.7.0_80
- jenv add /opt/jdk1.8.0_144
看当前使用的java所在路径
jenv which java
查看可以设置的java版本
jenv versions
使用某个版本的JDK(全局)
jenv global 1.8
去掉某些没有的版本
jenv remove 1.8.0.144