「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」。
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,这就意味着,你不能在生产环境使用这个版本了(可能要被反薅了🥲)。
JDK17又换了许可证了。此 Oracle JDK 许可证允许所有用户免费使用,甚至可以用于商业和生产用途。只要不收费,再分发是允许的。不过OpeJDK还是一直免费。
不过呢?早在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。
Spring framework 6 和Spring Boot 3 都将基于JAVA 17,现在看,可能是使用JDK8或JDK17比较好。
ZuluJDK
确定使用OpenJDK和JDK的版本,然后下载呢?这边我推荐ZuluJDK(一个OpenJDK的发行版本):
使用ZuluJDK的优点:
- 支持ARM/X86架构设备
- 支持Windows/Linux/macOS平台
- 支持JDK6-JDK Latest版本
- 支持配置JavaFx(Java的图形包)
当然,如果你需要Oracle JDK,也可以去Oracle官网下载:www.oracle.com/java/techno…
辅助视频
嘿嘿,顺手,做了个教程视频:
配置JDK
第一次使用Linux的用户(尤其是Linux服务器用户)或者是macOS用户,往往是直接用软件项目管理器安装:
# Ubuntu/Debian
sudo apt-get install default-jdk
# Centos
yum install default-jdk
但是这样安装的OpenJDK,版本不好控制,无法安装上文体积的ZuluJDK。
所以,建议自己手动配置JAVA_HOME。
当然,如果你要卸载软件包管理器的JDK,可以:
# Ubuntu/Debian
sudo apt-get purge "java*"
# CentOS
rpm -e --nodeps `rpm -qa | grep java`
JAVA_HOME
和Windows上的配置一样,我们需要配置JAVA_HOME,进而配置JDK环境。很简单。
1. 下载JDK
首先,选择我们要配置的JDK(这里的JDK是作为系统默认JDK),比如,这里我的x86架构服务器配置:
tar.gz
: JDK压缩归档文件,解压后需要直接配置到环境变量。deb
: 软件包管理器安装包,适用于Debian系。rpm
:软件包管理器安装包,适用于CentOS系。
本次配置JDK,就使用tar.gz
包进行配置了。
我们直接复制下载地址,使用终端连接服务器,之后进行快速设置:
# 进入用户目录
cd ~
# 新建一个文件夹,用于存放JDK(方便管理)
mkdir myEnvironment
# 进入这个文件夹
cd myEnvironment
# 下载JDK 17
wget "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-fx-jdk17.0.2-linux_x64.tar.gz"
2. 释放文件
下载好后,是一个压缩包文件,我们需要解压。
如果你还不会解压,可以看看这篇文章:Linux/macOS上Shell详解:tar和zip命令
# 解压文件
tar -xf zulu17.32.13-ca-fx-jdk17.0.2-linux_x64.tar.gz
为了更方便配置文件,且更让用户能看懂这个是什么文件:),我们重命名:
# 重命名一长串名称的文件夹名为 ZuluJDK16
mv zulu17.32.13-ca-fx-jdk17.0.2-linux_x64 ZuluJDK17
# 删除最开始的压缩包,解决Linux服务器空间
rm -rf zulu17.32.13-ca-fx-jdk17.0.2-linux_x64.tar.gz
现在,前期准备都完成了。准备开始最后一步:配置环境变量。
3. 环境变量
首先,明确我们JDK的位置:
比如:我的是:/root/myEnvironment/ZuluJDK17
现在,我们进行最后一步,也就是配置JDK到环境变量内。根据你的Shell版本,进行选择:
# Bash Shell用户
vim ~/.bashrc
# ZSH Shell用户
vim ~/.zshrc
P.S:一般Linux默认使用Bash作为默认Shell
追加内容:
# JAVA_HOME记得改成自己的嗷
JAVA_HOME=/root/myEnvironment/ZuluJDK16
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin/
export PATH JAVA_HOME CLASSSPATH
之后,按ESC
,在输入:wq
回车保存。最后,终端内输入:
# Bash用户
source ~/.bashrc
# ZSH用户
source ~/.zshrc
之后,就可以使用我们的(默认)JDK了:
java -version
当然,这样只是安装了一个版本JDK,如何安装和配置更多版本的JDK呢?
多版本JDK管理
安装了一个版本的JDK,但是,有时候却因为JDK版本不兼容,导致Springboot打包项目无法启动:
如何安装多版本的JDK呢?
方法很多,我推荐用jenv管理JDK。
Jenv
按照官网的解释: jEnv is a command line tool to help you forget how to set the JAVA_HOME environment variable
简单地说:使用一条命令可以轻松配置JAVA_HOME到环境变量。
如何配置
Jenv的配置十分简单,简单地说:下载Jenv–配置到环境变量–重载环境变量
①下载jenv
方法很多,你可以直接下载Jenv的源码,或者直接用Git去同步源码,比如:
# 使用Git下载jenv源码到用户目录下的.jenv文件夹
git clone https://github.com/jenv/jenv.git ~/.jenv
如果你的服务器无法连接Git,可以试试Gitee的同步源,或者到jenv的项目地址,手动下载Jenv并上传到服务器。
②配置到环境变量
之后,我们到环境变量内配置jenv即可:
# Bash Shell用户
vim ~/.bashrc
# ZSH Shell用户
vim ~/.zshrc
并添加:
# Jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
记得按保存嗷。
③重载环境变量
最后,我们重载环境变量:
# Bash Shell用户
source ~/.bashrc
# ZSH Shell用户
source ~/.zshrc
现在jenv就可以使用了:
jenv help
接下来,我们重点看看jenv的使用。
Jenv具体使用
Jenv的使用很简单,这边我们讲讲如何Jenv添加新的JDK版本,并切换和管理JDK。
1. 新增JDK
利用上文配置JDK16的方法,我下载了JDK11:
对应的服务器存储地址是:/root/myEnvironment/ZuluJDK11
而我们添加这个JDK也很简单:
jenv add /root/myEnvironment/ZuluJDK11
当然,利用同样的方法,加入JDK16:
这样,我们就把需要的JDK版本都已经安装好了。只需要切换JDK版本即可。
2. 切换JDK
切换的方法很简单,首先看看当前安装的JDK版本:
jenv versions
如果没有你想要的JDK版本,按上一步的方法安装即可。
这个时候,我们用的还是默认JDK**(system (set by /root/.jenv/version))**,我们要切换到JDK11只需要:
jenv local 11
这个时候,这个目录下使用的JDK就是JDK11了:
P.S:如果你需要全局JDK,可以用:
jenv global 11
3. 管理JDK
有时候,jenv的add扫描,扫描的内容过多怎么办呢?比如,我只添加了JDK11和JDK16,有这么多版本JDK:
这个时候也很简单,使用remove命令即可:
END
Linux上配置JDK和多版本JDK切换,就是这么地简单。说实话,本篇文章技术含量偏低,主要就是讲解Java配置和Jevn的使用。
不过基础开发工具这个地基一定要打好,后面的高楼才好建。
今天的文章Linux使用Jenv优雅配置多版本JDK,开发环境切换不再繁琐分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/21335.html