版本切换工具篇

版本切换工具篇

JENV管理JDK

jdk全称”Java Development Kit“,指的是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序的开发。jdk是java开发的核心,包括了JRE(Java运行环境)运行时类库、JVM(Java虚拟机)。

一般,我们需要用到基于Java虚拟机的操作服务时,需要有JDK的环境,这样的Java有两个特点(Write once, run anywhere):

  • 易于移植:只需要有Java的虚拟机(JDK)环境,即可运行Java程序。
  • 需要平台有Java虚拟机支持:Java程序有所限制,需要有Java环境支持

大部分程序开发者,或者普通用户,都有了解过JDK的配置。但是:

  • Linux服务器上怎么配置JDK呢?
  • 能否实现多版本JDK同时配置安装呢?

本次教程,就在Linux(ubuntu系统)上安装多版本JDK,并使用Jenv管理JDK。

安装思路

常规(传统)安装

我们通常安装JDK是:

  • Centos系统使用yum包管理器安装/Ubuntu使用apt包管理器安装,然后直接使用。
  • 上传源码包、解压源码包、在环境变量文件中追加JAVA_HOME然后source重载配置后使用。

前卫安装

在前面常规(传统)安装的前提下,追加Jenv的配置,实现JDK的切换:

确定使用OpenJDK和JDK的版本之后,使用ZuluJDK(一个OpenJDK的发行版本)

安装JDK8
1
2
3
4
5
6
# wget 下载源码包
root@VM-4-12-ubuntu:~# wget https://cdn.azul.com/zulu/bin/zulu8.66.0.15-ca-jdk8.0.352-linux_x64.tar.gz
# 创建源码包保存目录
root@VM-4-12-ubuntu:~# mkdir /JDK
# 解压源码包至保存目录
root@VM-4-12-ubuntu:~# tar -xzvf zulu8.66.0.15-ca-jdk8.0.352-linux_x64.tar.gz -C /JDK/
1
2
3
4
5
6
7
# 配置JAVA_HOME
root@VM-4-12-ubuntu:~# vim .bashrc
# JAVA环境变量配置
JAVA_HOME=/JDK/jdk8
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin/
export PATH JAVA_HOME CLASSSPATH
1
2
# 重载配置
root@VM-4-12-ubuntu:~# source ~/.bashrc
1
2
3
4
5
# 查看版本(JDK1.8就是JDK8)
root@VM-4-12-ubuntu:~# java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (Zulu 8.66.0.15-CA-linux64) (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (Zulu 8.66.0.15-CA-linux64) (build 25.352-b08, mixed mode)

多版本JDK管理

安装JENV

Jenv项目地址

1
2
# 使用git下载jenv源码到用户目录下的.jenv文件夹
root@VM-4-12-ubuntu:~# git clone https://github.com/jenv/jenv.git ~/.jenv
1
2
3
4
5
# 配置环境变量
root@VM-4-12-ubuntu:~# vim .bashrc
# Jenv配置环境变量
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
1
2
# 重载配置(会出现“jenv has been updated, process to refresh plugin links”这句话,说明配置成功)
root@VM-4-12-ubuntu:~# source ~/.bashrc

现在jenv就可以使用了:

1
root@VM-4-12-ubuntu:~# jenv help

切换JDK

1
2
# 查看当前安装的JDK版本
root@VM-4-12-ubuntu:~# jenv versions
1
2
# 局部JDK11
root@VM-4-12-ubuntu:~# jenv local 11
1
2
# 全局JDK11
root@VM-4-12-ubuntu:~# jenv global 11

管理JDK

有时候,jenv的add扫描,扫描的内容过多怎么办呢?比如,我只添加了JDK8、JDK11,怎么会有这么多版本JDK:

1
2
3
4
5
6
7
8
9
root@VM-4-12-ubuntu:~# jenv versions
* system (set by /root/.jenv/version)
11
11.0
11.0.17
1.8.0.352
1.8
1.8.0.352
zulu64-1.8.0.352

这个时候也很简单,使用remove命令即可:

1
2
root@VM-4-12-ubuntu:~# jenv remove zulu64-1.8.0.352
root@VM-4-12-ubuntu:~# jenv remove 1.8
1
2
3
4
root@VM-4-12-ubuntu:~# jenv versions
system
11.0.17
* 1.8.0.352 (set by /root/.jenv/version)

NVM管理Node.js