Linux使用Jenv优雅配置多版本JDK,开发环境切换不再繁琐
本文最后更新于 2023年9月17日 上午
JDK
JDK,全称:Java Development Kit,也就是Java开发人员发布的免费软件开发工具包。JDK一般包括JRE(Java Runtime Environment),所以我们需要使用Java环境,习惯性叫配置JDK环境。
一般,我们需要用到基于Java虚拟机的操作服务时,需要有JDK的环境,这样的Java有两个特点(Write once, run anywhere):
- 易于移植:只需要有Java的虚拟机(JDK)环境,即可运行Java程序。
- 需要平台有Java虚拟机支持:Java程序有所限制,需要有Java环境支持
大部分程序开发者,或者普通用户,都有了解过JDK的配置。但是:
- Linux服务器上怎么配置JDK呢?
- 能否实现多版本JDK同时配置安装呢?
本次教程,就在Linux(以腾讯云轻量应用服务器演示)上安装多版本JDK,并使用Jenv管理JDK。
安装思路
传统安装(或者说常规安装),是到环境变量文件里,追加JAVA_HOME文件,然后重载配置后,JDK就可以使用了:
本文的方法,也差不多,但是在常规安装的方法后,追加Jenv的配置,实现JDK的切换:
教程同步
本教程同步发布至:
JDK选择
在配置JDK前,我们先来看看如何选择JDK。JDK的版本分支很多,大体上分为:
- OpenJDK:开源的JDK
- OracleJDK:Oracle公司开发的JDK
这个其实是看个人喜好,但是如果问我,我更推荐OpenJDK,避免项目因为版权问题而引发纠纷(每个程序员,都有个项目做大做强的梦……)
其中,软件包管理器的JDK,也属于OpenJDK的一种。
OpenJDK
最开始,JDK由SUN公司开发,但是后来被Oracle公司收购,现在的OracleJDK,其License 协议已经从BCL换成了OTN,这就意味着,你不能在生产环境使用这个版本了(可能要被反薅了🥲)。
不过呢?早在2006 年的 Java One 大会上,Sun公司(那时候还没被Oracle收购)就宣布Java技术的开源,随之诞生了OpenJDK,并在随着Google的Android全面使用OpenJDK开始,OpenJDK使用的人数越来越多。
目前,OpenJDK基本满足所有开发的需求和需要,小部分需要使用OracleJDK的包时,基本也可以通过引用外部包和自己编写依赖包解决(如:sun包下的Base64)。所以,目前使用OpenJDK,不管作为开发还是生产环境,都是不错的选择。
JDK版本选择
JDK的版本怎么选择呢?一般而言,JDK的版本并不是越高版本越好。JDK一般是一个稳定长期支持版本,然后经过两个快速开发版本迭代,再出一个稳定长期版本。比如:JDK8发布,JDK9、JDK10就是开发版本,之后的JDK11又是一个稳定长期支持版本。
所以,通常情况下,我们使用稳定长期支持版本比较好,如:JDK8、JDK11.
ZuluJDK
确定使用OpenJDK和JDK的版本,然后下载呢?这边我推荐ZuluJDK(一个OpenJDK的发行版本):
使用ZuluJDK的优点:
- 支持ARM/X86架构设备
- 支持Windows/Linux/macOS平台
- 支持JDK6-JDK Latest版本
- 支持配置JavaFx(Java的图形包)
当然,如果你需要Oracle JDK,也可以去Oracle官网下载:https://www.oracle.com/java/technologies/javase-downloads.html
辅助视频
嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷~B站视频地址:https://www.bilibili.com/video/BV1Yw411d7bU
配置JDK
第一次使用Linux的用户(尤其是Linux服务器用户)或者是macOS用户,往往是直接用软件项目管理器安装:
1 |
|
但是这样安装的OpenJDK,版本不好切换,且一般为JDK最新版本(现在是JDK16,你就无法安装JDK8或者11了嗷)。所以,建议自己手动配置JAVA_HOME。
当然,如果你要卸载软件包管理器的JDK,可以:
1 |
|
JAVA_HOME
和Windows上的配置一样,我们需要配置JAVA_HOME,进而配置JDK环境。很简单。
1. 下载JDK
首先,选择我们要配置的JDK(这里的JDK是作为系统默认JDK),比如,这里为配置默认JDK为JDK16,因为我的Linux是腾讯云轻量应用服务器的Debian,所以选择x86版本的JDK:
我们直接复制下载地址,使用终端连接服务器,之后进行快速设置:
1 |
|
2. 释放文件
下载好后,是一个压缩包文件,我们需要解压:
1 |
|
为了更方便配置文件,且更让用户能看懂这个是什么文件:),我们重命名:
1 |
|
现在,前期准备都完成了。准备开始最后一步。
3. 环境变量
首先,明确我们JDK的位置:
比如:我的是:/root/myEnvironment/ZuluJDK16
现在,我们进行最后一步,也就是配置JDK到环境变量内。根据你的Shell版本,进行选择:
1 |
|
P.S:一般Linux默认使用Bash作为默认Shell
追加内容:
1 |
|
之后,按ESC
,在输入:wq
回车保存。最后,终端内输入:
1 |
|
之后,就可以使用我们的(默认)JDK了:
1 |
|
当然,这样只是安装了一个版本JDK,如何安装和配置更多版本的JDK呢?
多版本JDK管理
安装了一个版本的JDK,但是,有时候却因为JDK版本不兼容,导致Springboot打包项目无法启动:
如何安装多版本的JDK呢?
方法很多,我推荐用jenv管理JDK。
1. Jenv
Jenv项目地址:https://www.jenv.be
按照官网的解释:
jEnv is a command line tool to help you forget how to set the JAVA_HOME environment variable
简单地说:使用一条命令可以轻松配置JAVA_HOME到环境变量。
2. 如何配置
Jenv的配置十分简单,简单地说:下载Jenv-配置到环境变量-重载环境变量
①下载jenv
方法很多,你可以直接下载Jenv的源码,或者直接用Git去同步源码,比如:
1 |
|
如果你的服务器无法连接Git,可以试试Gitee的同步源,或者到jenv的项目地址,手动下载Jenv并上传到服务器。
②配置到环境变量
之后,我们到环境变量内配置jenv即可:
1 |
|
并添加:
1 |
|
记得按保存嗷。
③重载环境变量
最后,我们重载环境变量:
1 |
|
现在jenv就可以使用了:
1 |
|
接下来,我们重点看看jenv的使用。
Jenv具体使用
Jenv的使用很简单,这边我们讲讲如何Jenv添加新的JDK版本,并切换和管理JDK。
1. 新增JDK
利用上文配置JDK16的方法,我下载了JDK11:
对应的服务器存储地址是:/root/myEnvironment/ZuluJDK11
而我们添加这个JDK也很简单:
1 |
|
当然,利用同样的方法,加入JDK16:
这样,我们就把需要的JDK版本都已经安装好了。只需要切换JDK版本即可。
2. 切换JDK
切换的方法很简单,首先看看当前安装的JDK版本:
1 |
|
如果没有你想要的JDK版本,按上一步的方法安装即可。
这个时候,我们用的还是默认JDK(system (set by /root/.jenv/version)),我们要切换到JDK11只需要:
1 |
|
这个时候,这个目录下使用的JDK就是JDK11了:
P.S:如果你需要全局JDK,可以用:
1 |
|
3. 管理JDK
有时候,jenv的add扫描,扫描的内容过多怎么办呢?比如,我只添加了JDK11和JDK16,缺有这么多版本JDK:
这个时候也很简单,使用remove命令即可:
END
Linux上配置JDK和多版本JDK切换,就是这么地简单。说实话,本篇文章技术含量偏低,主要就是讲解Jevn的使用。另外,大家也可以看到我腾讯云轻量应用服务器使用的是Oh-my-zsh配置文件的ZSH Shell,它可以补充jenv的代码,有机会,下次讲解如何在腾讯云轻量应用服务器上配置ZSH嗷~
作者:Mintimate
Mintimate’s Blog:https://www.mintimate.cn