【Linux】更换jdk版本

该文详细介绍了如何在Linux服务器上查看与更换JDK版本,包括检查项目与服务器的JDK匹配性,下载新版本JDK,创建java文件夹,解压安装,删除旧版本,修改及加载环境变量。此外,文中还特别提到了因环境变量配置不当导致的命令失效问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

当我们创建好服务器后,需要将项目部署至服务器上,这时,我们应考虑服务器的jdk版本号和项目中使用的jdk版本号是否一致。若不一致,就需要更改服务器中的jdk版本号

二、查看jdk版本号

1、项目中的版本号(pom.xml)

可以看的出,项目中使用的jdk版本是11
在这里插入图片描述

2、服务器中的版本号

#查看jdk版本号
java -version

在这里插入图片描述
项目中的jdk版本和服务器中的jdk版本是不一致的,所以我们需要更换服务器中的jdk版本

三、更换jdk版本

1、创建java文件夹

#创建Java文件夹
mkdir /usr/local/java

#切换至/usr/local路径下,进行查看创建好的java文件夹
cd /usr/local
ls

在这里插入图片描述

2、下载并解压JDK安装包

①、下载jdk安装包

在这里插入图片描述

把下载到本地的jdk安装包上传到服务器中,一般是存在/tmp/路径下的

在这里插入图片描述

②、移动到创建好的/usr/local/java路径下

#移动到创建好的/usr/local/java路径下
mv jdk-11.0.19_linux-x64_bin.tar.gz /usr/local/java

#切换路径
cd /usr/local/java

在这里插入图片描述

③、解压jdk安装包

#对jdk进行解压
tar -zxvf jdk-11.0.19_linux-x64_bin.tar.gz

#查看解压好的jdk
ls

在这里插入图片描述

四、删除原来的jdk版本

1、删除原来的jdk版本

rm -f /usr/bin/java 

rm -f /usr/bin/javac

rm -f /etc/alternatives/java

rm -f /etc/alternatives/javac

在这里插入图片描述

2、进入profile文件

#切换到根目录
cd ~

#进入到/etc路径下
cd /etc/	

#编辑profile文件
vi profile

在这里插入图片描述

3、添加环境变量

进入profile文件后,输入i进行编辑,把以下环境变量放置最下方,然后按ESC退出编辑,输入:wq保存退出

# jdk environment
#JAVA_HOME是安装jdk的路径
JAVA_HOME=/usr/local/java/jdk-11.0.19
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

在这里插入图片描述

4、重新加载profile文件

#重新加载profile文件
source /etc/profile

在这里插入图片描述

五、查看jdk版本

#查看jdk版本
java -version

在这里插入图片描述
这时,我们可以看到,服务器中的jdk版本更换成了11。

六、更换jdk版本后,linux命令失效(踩坑记录)

1、出现命令失效的原因

我在/etc/profile文件中配置的环境变量如下:
在这里插入图片描述
一开始我更换完jdk版本后,输入其他命令还是有效的。当我重启服务器或者重新打开一个服务器的窗口时,再次输入命令,这时,命令失效并提示: command not found
在这里插入图片描述

2、临时解决方法

执行一下以下命令就能输入linux命令了,但是只是暂时有效。

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin

在这里插入图片描述

3、最终解决方法

在网上又找了其他方法,发现网上提供的配置环境变量的内容和我配置的环境变量的内容有所差异:

PATH= J A V A H O M E / b i n 这一行中,应该将 J A V A H O M E / b i n 放在 P A T H 之前,确保先搜索 J D K 的 b i n 目录。正确的写法是: P A T H = J A V A H O M E / b i n : JAVA_HOME/bin这一行中,应该将JAVA_HOME/bin放在PATH之前,确保先搜索JDK的bin目录。正确的写法是: PATH=JAVA_HOME/bin: JAVAHOME/bin这一行中,应该将JAVAHOME/bin放在PATH之前,确保先搜索JDKbin目录。正确的写法是:PATH=JAVAHOME/bin:PATH

而我写的配置环境变量是没有添加:$PATH的,所以导致了命令失效的问题。
在这里插入图片描述

<think>好的,我需要回答用户关于在Linux系统中切换或修改默认JDK版本的问题。首先,我得回忆一下相关步骤,并确保信息准确。用户提供的引用中有几个相关的资料,比如引用[1]提到了Ubuntu下切换Open JDK8和11的例子,引用[4]讨论了JAVA_HOME和版本不一致的问题,这些都可能有用。 首先,我应该分步骤说明。常见的Linux发行版如Ubuntu、CentOS、openSUSE可能有不同的方法,但通用的方法通常是使用update-alternatives命令。需要先检查已安装的JDK版本,然后配置alternatives,最后设置默认版本。此外,手动设置JAVA_HOME环境变量也是一个重要步骤,可以引用[4]中的内容来说明这一点。 然后,用户可能需要具体的命令示例。例如,在Ubuntu中安装不同JDK版本后,运行sudo update-alternatives --config java来选择版本。同时,确保JAVA_HOME指向正确的路径,比如在~/.bashrc中添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64,并应用更改。这部分需要引用引用[1]和引用[4]来支持。 还要注意可能的陷阱,比如路径是否正确,或者是否需要更新所有相关的命令(如javac、javadoc等)。此外,引用[5]提到JMeter需要JDK,可能用户的环境涉及多个工具,正确设置JDK版本很重要。 最后,生成相关问题时要考虑用户可能进一步的问题,比如如何安装不同版本,解决版本不匹配,或者特定发行版的切换方法。这样能帮助用户更全面地了解相关主题。</think>### 如何在Linux系统中切换或修改默认的JDK版本 #### 步骤说明 1. **检查已安装的JDK版本** 使用以下命令查看系统已安装的JDK路径: ```bash sudo update-alternatives --config java ``` 这会列出所有已安装的Java版本及对应的路径,例如: ``` Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode * 2 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode ``` 输入对应编号即可切换[^1]。 2. **配置JDK优先级(若未自动识别)** 如果新安装的JDK未被`update-alternatives`识别,需手动添加: ```bash sudo update-alternatives --install /usr/bin/java java /path/to/jdk/bin/java 优先级 ``` 例如,添加OpenJDK 11: ```bash sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 ``` 3. **设置全局环境变量`JAVA_HOME`** 编辑`~/.bashrc`或`/etc/environment`文件,添加: ```bash export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际路径修改 export PATH=$JAVA_HOME/bin:$PATH ``` 保存后执行`source ~/.bashrc`使配置生效[^4]。 4. **验证默认版本** 运行以下命令确认切换成功: ```bash java -version javac -version ``` 若`java`与`javac`版本不一致,需检查`update-alternatives --config javac`的配置[^4]。 #### 不同发行版的差异 - **Ubuntu/Debian**:主要依赖`update-alternatives`工具。 - **CentOS/RHEL**:类似Ubuntu,但可能需要手动配置`alternatives`。 - **openSUSE**:可通过`sudo zypper install java-11-openjdk`安装后,使用`update-alternatives`切换[^2]。 #### 注意事项 - 若使用Oracle JDK,需从官网下载并解压到自定义路径(如`/opt`),再通过上述步骤配置[^3]。 - 多版本共存时,确保所有相关命令(如`javac`、`jar`)均指向同一JDK版本。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃芋圆的兔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值