【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/javacrm -f /etc/alternatives/javarm -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的,所以导致了命令失效的问题。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业知识文档管理+群晖nas安全云存储

企业知识管理系统,利用软件系统或其他工具的企业管理方法,利用软件系统或其他工具,对组织中大量的有价值的方案、策划、成果、经验等知识进行分类存储和管理,积累知识资产避免流失,促进知识的学习、共享、培训、再利用…

CPU Architecture Methodologies

MMU MMU(Memory Management Unit) 负责将逻辑地址转化为物理地址对于现代处理器来说,一般每个core都有自己的 MMU页表等数据结构保存在 TLB NUMA Non-uniform memory access (NUMA) is a computer memory design used in multiprocessing, where the memory access…

探索大型语言模型的开源人工智能基础设施:北京开源AI Meetup回顾

原文参见Explore open source AI Infra for Large Language Models: Highlights from the Open Source AI Meetup Beijing | Cloud Native Computing Foundation 背景介绍: 最近,在 ChatGPT 的成功推动下,大型语言模型及其应用程序的流行度激…

CHI中的error处理

Error Handling Error types 包含两种sub-packet级别的error, 和两种packe级别的error; Packet level error Data Error, DERR □ 访问的地址是正确的,但是访问的数据有错误;通常是在数据崩溃的时候使用,例如ECC&#xf…

JSON对象

目录 简介 创建对象 ​编辑json对象作为属性值 json用于交换数据 简介 json:javascript object notation(js标记对象)是一种轻量化的数据交换模式,特点:体积小,数据量大 在js中,json是以对象的形式存在的&#x…

51单片机学习--按键控制流水灯模式定时器时钟

TMOD负责确定T0和T1的工作模式,TCON控制T0和T1的启动或停止计数,同时包含定时器状态 TF1:定时器1溢出标志 TF0:定时器0溢出标志 0~65535 每隔1微秒计数器1,总时间65535微秒,赋上初值64535,则只…

ansible-playbook roles编写lnmp剧本

目录 集中式编写lnmp剧本 执行 分布式编写lnmp剧本 一定要设置ssh免交互 nginx mysql php 执行 集中式编写lnmp剧本 vim /etc/ansible/lnmp.yml - name: lnmp playhosts: dbserversremote_user: roottasks:- name: perpare condifurecopy: src/etc/yum.repos.d/nginx.r…

华为机考--服务失效判断--带答案

新2023年华为OD真题机考题库大全-带答案&#xff08;持续更新)or2023华为OD统一考试&#xff08;AB卷&#xff09;题库清单-带答案&#xff08;持续更新&#xff09; 题目描述 某系统中有众多服务&#xff0c;每个服务用字符串&#xff08;只包含字母和数字&#xff0c;长度<…

使用 NVM(Node Version Manager)管理 Node.js 版本

使用 NVM&#xff08;Node Version Manager&#xff09;管理 Node.js 版本 步骤一&#xff1a;安装 NVM NVM 是一个用于安装和管理不同版本的 Node.js 的工具。首先&#xff0c;你需要确保你的系统上已经安装了 NVM。可以通过以下命令检查 NVM 是否已经安装&#xff1a; nvm …

红队打靶:FourAndSix2.01打靶思路详解(vulnhub)

目录 写在开头 第一步&#xff1a;主机发现与端口扫描 第二步&#xff1a;NFS渗透 第三步&#xff1a;7z压缩包的密码破解 第四步&#xff1a;ssh私钥登录 第五步&#xff1a;lessvi提权 总结与思考 写在开头 本篇博客根据大佬红队笔记的视频进行打靶&#xff0c;详述了…

黑马头条---day1

手机端查看 docker 容器&#xff0c;镜像操作命令 1、docker删除所有镜像命令 删除所有镜像的命令是Docker中一个非常常见的操作。下面是具体的实现步骤和命令示例&#xff1a; $ docker stop $(docker ps -aq) 停止所有正在运行的容器。 $ docker rm $(docker ps -aq) 删…

selenium的java方式打开IE浏览器

1.下载软件Selenium Driver 官方下载地址&#xff1a; ​ https://www.selenium.dev/downloads/解压selenium-java-3.141.59.zip文件到java项目 seleniumDemo&#xff0c;并降解压的文件放入依赖中&#xff08;1&#xff09;双击项目的src打开项目结构&#xff0c;或右键-打开…

python将多张图片拼成一张矩阵图,合成一张大图

用Python实现将多张图片排列成n*m的图像矩阵图 目录 引言环境准备代码实现效果演示总结 引言 在图像处理和图像展示的应用中&#xff0c;将多张图片排列成一个图像矩阵图是一个常见的需求。本博客介绍如何使用Python实现将12张图片排列成n*m的图像矩阵图。 环境准备 为了实…

操作系统专栏2进程管理from 小林coding

进程管理 基本概念进程控制进程上下文切换 线程进程和线程的比较进程通信管道消息队列共享内存信号量信号socket 基本概念 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元.并行和并发:状态: 其中挂起是指没有给程序分配实际…

ZZULIOJ 1187: 棒棒糖(结构体专题),Java

ZZULIOJ 1187: 棒棒糖&#xff08;结构体专题&#xff09;&#xff0c;Java 题目描述 新年快到了&#xff0c;计算机学院新年晚会正在筹备中&#xff0c;今年有一个新创意&#xff1a;来参加晚会的所有学生都有礼物&#xff08;一根棒棒糖&#xff09;。老师把买棒棒糖的任务…

学习中遇到的好博客

c日志工具之——log4cpp ECU唤醒的本质就是给ECU供电。 小文件&#xff1a;零拷贝技术 传输大文件&#xff1a;异步 IO 、直接 IO&#xff1a;如何高效实现文件传输&#xff1a;小文件采用零拷贝、大文件采用异步io直接io (123条消息) Linux网络编程 | 彻底搞懂…

机器学习01 -Hello World(对鸢尾花(Iris Flower)进行训练及测试)

什么是机器学习&#xff1f; 机器学习是一种人工智能&#xff08;AI&#xff09;的子领域&#xff0c;它探索和开发计算机系统&#xff0c;使其能够从数据中学习和改进&#xff0c;并在没有明确编程指令的情况下做出决策或完成任务。 传统的程序需要程序员明确编写指令来告诉…

QT 视图(view)模型(model)汇总

QStringListModel和QListView UI界面 widget头文件 #ifndef WIDGET_H #define WIDGET_H#include <QStringList> #include <QStringListModel> #include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : publi…

Leetcode | Kadane Algo | 53. 918.

53. Maximum Subarray 如果cur_sum大于零&#xff0c;可以晋级到下一个元素&#xff0c;因为正数只会让之后的和更大。如果cursum小于零&#xff0c;那就把他reset成0&#xff0c;让下一个元素从头开始。在此过程中一直记录global max 918. Maximum Sum Circular Subarray 两…

使用AOP切面对返回的数据进行脱敏的问题

1.注解类 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** Author: xiaoxin* Date: 2023/7/21 17:15*/ Retention(RetentionPolicy.RUNTIME) Targe…