【Linux】更换jdk版本

目录

  • 一、前言
  • 二、查看jdk版本号
    • 1、项目中的版本号(pom.xml)
    • 2、服务器中的版本号
  • 三、更换jdk版本
    • 1、创建java文件夹
    • 2、下载并解压JDK安装包
      • ①、下载jdk安装包
      • ②、移动到创建好的/usr/local/java路径下
      • ③、解压jdk安装包
  • 四、删除原来的jdk版本
    • 1、删除原来的jdk版本
    • 2、进入profile文件
    • 3、添加环境变量
    • 4、重新加载profile文件
  • 五、查看jdk版本
  • 六、更换jdk版本后,linux命令失效(踩坑记录)
    • 1、出现命令失效的原因
    • 2、临时解决方法
    • 3、最终解决方法

一、前言

当我们创建好服务器后,需要将项目部署至服务器上,这时,我们应考虑服务器的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的,所以导致了命令失效的问题。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/51129.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt: 查看qmake相关参数设置

Qt开发中,经常会遇到qmake相关问题,比如同时安装了多个Qt版本的情况。比如我的情况是系统自带了Qt 5.12.8, 但是开发中遇到一些兼容性问题,于是又手动安装了5.9.8。 查看qmake版本,qmake -v, 虽然项目中已经指定了5.9.8, 但是系统…

【力扣每日一题】2023.7.30 环形链表2

题目: 示例: 分析: 这道题属于是那种知道解法就很简单,不知道解法就很难独立想出来的那种,我们只需要稍微记住这类题的固定解法就可以。 所以接下来我先说解法,再解释为什么解法可以解出来。 那么我们都…

数值线性代数: 共轭梯度法

本文总结线性方程组求解的相关算法,特别是共轭梯度法的原理及流程。 零、预修 0.1 LU分解 设,若对于,均有,则存在下三角矩阵和上三角矩阵,使得。 设,若对于,均有,则存在唯一的下三…

MyBatis(二)

文章目录 一.MyBatis的模式开发1.1 定义数据表和实体类1.2 配置数据源和MyBatis1.3 编写Mapper接口和增加xxxMapper.xml1.4 测试我们功能的是否实现. 二. Mybatis的增删查改操作2.1 单表查询2.2 多表查询三.动态SQL的实现3.1 什么是动态SQL3.2 动态SQL的使用if标签的使用trim标…

LeetCode559. N 叉树的最大深度

559. N 叉树的最大深度 文章目录 [559. N 叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-n-ary-tree/)一、题目二、题解方法一:迭代方法二:递归 一、题目 给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶…

【机器学习】Multiple Variable Linear Regression

Multiple Variable Linear Regression 1、问题描述1.1 包含样例的X矩阵1.2 参数向量 w, b 2、多变量的模型预测2.1 逐元素进行预测2.2 向量点积进行预测 3、多变量线性回归模型计算损失4、多变量线性回归模型梯度下降4.1 计算梯度4.2梯度下降 首先,导入所需的库 im…

架构的分类

目录 一、 RUP41 架构 1.1 RUP41架构方法概述 1.2 RUP41架构总体 1.3 RUP41架构方法内容 1.3.1 逻辑视图 1.3.2 开发视图 1.3.3 物理视图 1.3.4 处理视图 1.3.5 场景视图 ​二、 TOGAF9 架构 2.1 TOGAF9 架构概述 2.2 TOGAF9 架构分类 2.2.1 业务架构 2.2.2 数据架…

蓝海卓越计费管理系统远程命令执行

活着,就要时刻准备承受磨难! 漏洞描述 蓝海卓越计费管理系统存在命令调试页面,导致攻击者可以远程命令执行 漏洞复现 访问 debug.php页面 远程调试命令执行 /debug.php漏洞证明 文笔生疏,措辞浅薄,望各位大佬不吝…

linux -网络编程-多线程并发服务器

目录 1.三次握手和四次挥手 2 滑动窗口 3 函数封装思想 4 高并发服务器 学习目标: 掌握三次握手建立连接过程掌握四次握手关闭连接的过程掌握滑动窗口的概念掌握错误处理函数封装实现多进程并发服务器实现多线程并发服务器 1.三次握手和四次挥手 思考: 为什么…

手把手教你使用stable diffusion生成自己的艺术二维码

艺术二维码制作指南 导读midjourneystable diffusion 环境准备安装stable diffusion webuisd-webui-qrcode-toolkit安装 草料二维码模型准备QR PatternQR Code MonsterIoC Lab Control Net 艺术二维码制作1. 二维码信息提取2. 使用QR Tookit生成二维码3. 下载二维码图片4. prom…

Modbus tcp转ETHERCAT网关modbus tcp/ip协议

捷米JM-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中,实现两种不同协议设备之间的通讯。这个网关能够大大提高工业生产的效率和生产效益,让生产变得更加智能化。捷米JM-ECT-TCP 是自主研发的一款 ETHERCAT 从站功能的通讯网关。该产品主要功能是…

一个监控系统的典型架构

监控系统的典型架构图,从左往右看,采集器是负责采集监控数据的,采集到数据之后传输给服务端,通常是直接写入时序库。然后就是对时序库的数据进行分析和可视化,分析部分最典型的就是告警规则判断,即图上的告…

【mysql学习篇】Order by与Group by优化以及排序算法详解

一、Order by与Group by优化 Case1: 分析: 利用最左前缀法则:中间字段不能断,因此查询用到了name索引,从key_len74也能看出,age索引列用在排序过程中,因为Extra字段里没有using filesort 注意…

擎创技术流 | 深入浅出运维可观测工具(二):eBPF应用中常见问题

上期跟大家聊了下eBPF的发展历史还有特性,点击这里↓↓↓擎创技术流 | 深入浅出运维可观测工具(一):聊聊eBPF的前世今生,一键回看上期精彩内容。 这期主要跟大家分享下eBPF在应用过程中可能出现的问题,希望…

本地仓库推送至远程仓库

1. 本地生成ssh密钥对 ssh-keygen -t rsa -C 邮箱2. 添加公钥到gitlab/github/gitee上 打开C:\Users\用户名\.ssh目录下生成的密钥文件id_rsa.pub,把内容复制到如下文本框中 删除Expiration date显示的日期,公钥有效期变成永久,之后点Add K…

vmware中windows操作系统虚拟机安装

1.win10中安装 1.1 虚拟机向导 文件-新建虚拟机 典型-下一步 稍后安装操作系统-下一步 window10 64x -下一步 修改虚拟机名称及位置-下一步 默认60g,至少大于40g-将虚拟磁盘拆分成多个文件夹-下一步 点击完成 1.2 编辑虚拟机设置 移除打印机 设置虚拟机,加入iso映…

联想北京公司研发管理部高级经理周燕龙受邀为第十二届中国PMO大会演讲嘉宾

联想(北京)有限公司研发管理部高级经理周燕龙先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:PMO如何助力研发。大会将于8月12-13日在北京举办,敬请关注! 议题简要: PMO在…

js中的遍历方法比较:map、for...in、for...of、reduce和forEach的特点与适用场景

😊博主:小猫娃来啦 😊文章核心:JavaScript中的遍历方法比较:map、for…in、for…of和forEach的特点与适用场景 文章目录 map 方法概述用法返回值特点 for...in 循环概述用法注意事项 for...of 循环概述用法可迭代对象…

用LangChain开源框架实现知识机器人

前言 Large Language Models (LLMs)在2020年OpenAI 的 GPT-3 的发布而进入世界舞台 。从那时起,他们稳步增长进入公众视野。 众所周知 OpenAI 的 API 无法联网,所以大家如果想通过它的API实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频…

[nlp] TF-IDF算法介绍

(1)TF是词频(Term Frequency) 词频是文档中词出现的概率。 (2) IDF是逆向文件频率(Inverse Document Frequency) 词条出现率越低,IDF越大。