【Linux】更换jdk版本

news2024/9/24 7:22:48

目录

  • 一、前言
  • 二、查看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的,所以导致了命令失效的问题。
在这里插入图片描述

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

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

相关文章

Java虚拟机——线程安全与锁优化

1 线程安全 当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作。调用这个对象的行为都可以获得安全的结果,就称这个对象是线程安全…

从零开始理解Linux中断架构(23)中断运行临界区和占先调度

Linux在内核中定义了6种运行临界区。 in_interrupt in_interrupt在驱动中使用频率最高的函数了,in_interrupt()就是指示Core是否正在中断处理中,包含了硬中断,软中断运行临界区。如果在中断处理中,则不能调用__do_softirq执行软中断处理。硬中断中不可调度不可中断,所有…

智慧园区安保人员巡更巡检解决方案,蓝牙信标主动式蓝牙定位导航系统

一、需求分析 目前,大部分写字楼,工厂,学校,银行,车站等场景对安保人员的管理依然靠手填单子记录作业情况,在缺乏信息化手段的情况下,靠人员自觉性或者RFID巡更棒,在这些传统方式下…

2023 年牛客多校第四场题解

A Bobo String Construction 题意:给定一个 01 01 01 字符串 t t t,构造一个长度为 n n n 的 01 01 01 串 s s s,使得 t t t 在 c o n c a t ( t , s , t ) {\rm concat}(t, s, t) concat(t,s,t) 中仅出现两次。多测, 1 ≤…

Android杂录 语音转文字功能 python混合开发环境搭建 priv-app开机赋予麦克风权限 HDMI与麦克风同时工作配置

专栏目录: 高质量文章导航-持续更新中_GZVIMMY的博客-CSDN博客 一.语音转文字功能 软件架构 硬件架构: 耳机接口 报错类型: AudioFlinger could not create record track, status: -1 Androi

【雕爷学编程】Arduino动手做(175)---机智云ESP8266开发板模块7

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

FreeRTOS之互斥量

什么是互斥量? 在多数情况下,互斥型信号量和二值型信号量非常相似,但是从功能上二值型信号量用于同步, 而互斥型信号量用于资源保护。 互斥型信号量和二值型信号量还有一个最大的区别,互斥型信号量可以有效解决优先级…

Python(四十八)列表的特点

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

基于SpringBoot+Vue的藏区特产销售平台设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

python调用百度ai将图片/pdf识别为表格excel

python调用百度ai将图片识别为表格excel 表格文字识别(异步接口)图片转excel 表格文字识别V2图片/pdf转excel通用 表格文字识别(异步接口) 图片转excel 百度ai官方文档:https://ai.baidu.com/ai-doc/OCR/Ik3h7y238 使用的是表格文字识别(异步接口),同步…

安装taghighlight遇到的需要python问题

起因: 在vim里面使用taghighlight时,输入命令:UpdateTypesFile后出现下面的提示: 看了一下,系统里面有安装python3.10,为什么还提示要安装python2.6呢?开始以为是python3.10的版本与taghighlight不匹配&am…

Linux常用命令——dpkg-split命令

在线Linux命令查询工具 dpkg-split Debian Linux中将大软件包分割成小包 补充说明 dpkg-split命令用来将Debian Linux中的大软件包分割成小软件包,它还能够将已分割的文件进行合并。 语法 dpkg-split(选项)(参数)选项 -S:设置分割后的每个小文件最…

LeetCode[1302]层数最深叶子节点的和

难度:Medium 题目: 给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 。 示例 1: 输入:root [1,2,3,4,5,null,6,7,null,null,null,null,8] 输出:15示例 2: 输入:r…

HTTP——二、简单的HTTP协议

本章将针对 HTTP 协议结构进行讲解,主要使用HTTP/1.1版本。学完这章,想必大家就能理解 HTTP 协议的基础了。 HTTP 一、HTTP协议用于客户端和服务器之间的通信二、通过请求和响应的交换达成通信三、HTTP是不保存状态的协议四、请求URI定位资源五、告知服…

GAMES101 笔记 Lecture12 Geometry3

目录 Mesh Operations: Geometry ProcessingMesh Subdivision (曲面细分)Mesh Simplification(曲面简化)Mesh Regularization(曲面正则化) Subdivision(细分)Loop Subdivision(Loop细分)如何来调整顶点位置呢?Loop Subdivision Result (Loop细分的结果) Catmull-Cla…

chatglm-6b量化推理指标记录

chatglm量化推理指标对比,单卡显存32G, 保持batchsize为64不变。通过不同的量化可以节省显存进而提升提升batch size,加快全量数据的推理速度。当然通过量化可以降低大模型的显存使用门槛。

Ae 效果:CC Toner

颜色校正/CC Toner Color Correction/CC Toner CC Toner(CC 色调)效果常用于对图像进行色调处理,可以实现双色调、三色调、五色调以及纯色的效果。 在某种程度上,与 Ae 自带的填充 Fill、色调 Tint以及三色调 Tritone等效果有相似…

[Linux]进程控制详解!!(创建、终止、等待、替换)

hello,大家好,这里是bang___bang_,在上两篇中我们讲解了进程的概念、状态和进程地址空间,本篇讲解进程的控制!!包含内容有进程创建、进程等待、进程替换、进程终止!! 附上前2篇文章…

37 coredump 的生成和使用

前言 呵呵 coredump 之前对于我而言也是一个挺陌生的概念 但是 只从开始了 linux 的相关学习之后, 对于这个 概念也有了一些 理解 呵呵 这里 以一些 简单的例子 来看一下 coredump 的生成和使用 首先执行 "ulimit -c unlimited" 测试用例1 - 除数为 0 root…

使用Kmeans算法完成聚类任务

聚类任务 聚类任务是一种无监督学习任务,其目的是将一组数据点划分成若干个类别或簇,使得同一个簇内的数据点之间的相似度尽可能高,而不同簇之间的相似度尽可能低。聚类算法可以帮助我们发现数据中的内在结构和模式,发现异常点和离…