Linux的JDK和Jenv(JAVA_HOME管理器)的详细配置使用教程
原创前言
使用第一次使用Linux的用户,往往不知道如何配置JDK;不配置JDK,就无法运行
Minecraft服务器
或者是
Apache Tomcat
服务器
等基于
Java虚拟机
的应用程序。
一般用户会使用:
# Ubuntu/Debian
sudo apt-get install openjdk-8-jdk
# Centos
yum install java-1.8.0-openjdk
但是这样安装的OpenJDK,版本不好切换,且OpenJDK一般没有
JavaFX
等功能包,使用这次介绍搭建怎么自己配置。
JDK的选择和下载
Oracle版本1.8还是很稳定的,但是官方下载需要Oracle账号,需要Oracle JDK可以到Oracle官网下载: https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
需要注意:
版本号为8u211以后的JDK版本,许可协议从BCL换成了OTN,这就意味着,你不能在生产环境使用这个版本了
其他版本OracleJDK,也可以访问官网下载: https://www.oracle.com/java/technologies/javase-downloads.html
同样,
生产环境需要给Oracle付费,公司用的话,就不要用Oracle版本了
。
适用于
生产环境,这边推荐OpenJDK
:
https://cn.azul.com/downloads/zulu-community/?package=jdk
:
建议使用
LTS
长期支持的稳定版本。
这边使用OpenJDK8作为演示,下载后文件为:
zulu8.52.0.23-ca-fx-jdk8.0.282-linux_x64.tar.gz
配置JDK到环境变量
对刚刚下载的
zulu8.52.0.23-ca-fx-jdk8.0.282-linux_x64.tar.gz
进行解压,解压到自己熟悉的目录下,方便之后环境配置:
tar -zxvf zulu8.52.0.23-ca-fx-jdk8.0.282-linux_x64.tar.gz
解压后,在当前目录下生成
zulu8.52.0.23-ca-fx-jdk8.0.282-linux_x64
文件夹,我们移动到更目录下ZuluJDK下并重命名为JDK8:
mv zulu8.52.0.23-ca-fx-jdk8.0.282-linux_x64 /ZuluJDK/JDK8
Linux默认一般使用
bash
,所以我们配置环境变量就配置
profile
这个,使用
vim
命令:
vim /etc/profile
之后会进入
vim
交互模式,我们按
i
进入编辑模式,在文末追加:
# JDK8
Java_Home=/ZuluJDK/JDK8
CLASSPATH=$Java_Home/lib/
PATH=$PATH:$Java_Home/bin/
export PATH Java_Home CLASSSPATH
之后,按
esc
在输入
:wq
保存并退出。之后,你可以重启终端,也可以重载配置使JDK环境变量生效:
source /etc/profile
输入
java -version
就发现,并不是显示未知命令了:
openjdk version "8.52.0" 2020-10-20 LTS
OpenJDK Runtime Environment Zulu8.52.0+21-CA (build 8.52.0+11-LTS)
OpenJDK 64-Bit Server VM Zulu8.52.0+21-CA (build 18.52.0+11-LTS, mixed mode)
JDK多版本随意切换--Jenv配置
在一些情况下,我们需要切换JDK的版本,比如:我们拷贝他人项目,他人项目JDK版本为11,而你自己配置的JDK版本为8,存在不兼容。这个时候我们就需要去调整JDK版本,有没有方法可以一劳永逸,轻松切换JDK呢?答案是Jenv:
什么是Jenv
按照官网的解释:
jEnv is a command line tool to help you forget how to set the JAVA_HOME environment variable
简单地说:
使用一条命令可以轻松配置JAVA_HOME到环境变量
。
如何配置Jenv
Jenv配置方法很简单,两个方法:
- 使用Git自动部署git clone https://github.com/jenv/jenv.git ~/.jenv echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile