首页 > 系统相关 >linux下jdk多版本切换

linux下jdk多版本切换

时间:2022-12-06 10:55:35浏览次数:72  
标签:java jdk 18 08 切换 linux Dec root lrwxrwxrwx

系统环境


  1. 系统 almalinux 9

  2. java Orcale jdk1.8 & jdk17

  3. jdk 安装方式 yum localinstall rpm包 (注:安装jdk时未对/etc/profile进行更改)


如何切换

参考Linux下怎么切换使用两个版本的JDK


使用alternatives --config java更改jdk版本

[root@minato ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/java/jdk1.8.0_351-amd64/bin/java
*+ 2           /usr/java/jdk-17.0.5/bin/java

Enter to keep the current selection[+], or type selection number: 1
[root@minato ~]# java -version
java version "1.8.0_351"
Java(TM) SE Runtime Environment (build 1.8.0_351-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.351-b10, mixed mode)


发现alternatives完全是巧合,是探究rpm安装未配置profile命令如何生效发现的。
先使用whereis查看java位置,发现它是在/usr/bin目录下。

[root@minato ~]# whereis java
java: /usr/bin/java /usr/share/man/man1/java.1

然后卸载,不论那个版本,都是在这个位置,然后查看/usr/bin目录

[root@minato ~]# cd /usr/bin/
[root@minato bin]# ll|grep java
lrwxrwxrwx  1 root root          22 Dec  5 08:18 java -> /etc/alternatives/java
lrwxrwxrwx  1 root root          23 Dec  5 08:18 javac -> /etc/alternatives/javac
lrwxrwxrwx  1 root root          25 Dec  5 08:18 javadoc -> /etc/alternatives/javadoc
lrwxrwxrwx  1 root root          32 Dec  5 08:18 javafxpackager -> /etc/alternatives/javafxpackager
lrwxrwxrwx  1 root root          23 Dec  5 08:18 javah -> /etc/alternatives/javah
lrwxrwxrwx  1 root root          23 Dec  5 08:18 javap -> /etc/alternatives/javap
lrwxrwxrwx  1 root root          30 Dec  5 08:18 javapackager -> /etc/alternatives/javapackager
lrwxrwxrwx  1 root root          30 Dec  5 08:18 java-rmi.cgi -> /etc/alternatives/java-rmi.cgi
lrwxrwxrwx  1 root root          24 Dec  5 08:18 javaws -> /etc/alternatives/javaws

发现,这里面的java是个链接,继续查下去

[root@minato bin]# cd /etc/alternatives/
[root@minato alternatives]# ll|grep java
lrwxrwxrwx  1 root root 45 Dec  5 08:18 appletviewer -> /usr/java/jdk1.8.0_351-amd64/bin/appletviewer
lrwxrwxrwx  1 root root 52 Dec  5 08:18 appletviewer.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/appletviewer.1
lrwxrwxrwx  1 root root 45 Dec  5 08:18 ControlPanel -> /usr/java/jdk1.8.0_351-amd64/bin/ControlPanel
lrwxrwxrwx  1 root root 41 Dec  5 08:18 extcheck -> /usr/java/jdk1.8.0_351-amd64/bin/extcheck
lrwxrwxrwx  1 root root 48 Dec  5 08:18 extcheck.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/extcheck.1
lrwxrwxrwx  1 root root 37 Dec  5 08:18 idlj -> /usr/java/jdk1.8.0_351-amd64/bin/idlj
lrwxrwxrwx  1 root root 44 Dec  5 08:18 idlj.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/idlj.1
lrwxrwxrwx  1 root root 36 Dec  5 08:18 jar -> /usr/java/jdk1.8.0_351-amd64/bin/jar
lrwxrwxrwx  1 root root 43 Dec  5 08:18 jar.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jar.1
lrwxrwxrwx  1 root root 42 Dec  5 08:18 jarsigner -> /usr/java/jdk1.8.0_351-amd64/bin/jarsigner
lrwxrwxrwx  1 root root 49 Dec  5 08:18 jarsigner.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jarsigner.1
lrwxrwxrwx  1 root root 37 Dec  5 08:18 java -> /usr/java/jdk1.8.0_351-amd64/bin/java
lrwxrwxrwx  1 root root 44 Dec  5 08:18 java.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/java.1
lrwxrwxrwx  1 root root 38 Dec  5 08:18 javac -> /usr/java/jdk1.8.0_351-amd64/bin/javac
lrwxrwxrwx  1 root root 45 Dec  5 08:18 javac.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/javac.1
lrwxrwxrwx  1 root root 40 Dec  5 08:18 javadoc -> /usr/java/jdk1.8.0_351-amd64/bin/javadoc
lrwxrwxrwx  1 root root 47 Dec  5 08:18 javadoc.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/javadoc.1
lrwxrwxrwx  1 root root 47 Dec  5 08:18 javafxpackager -> /usr/java/jdk1.8.0_351-amd64/bin/javafxpackager
lrwxrwxrwx  1 root root 54 Dec  5 08:18 javafxpackager.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/javafxpackager.1
lrwxrwxrwx  1 root root 38 Dec  5 08:18 javah -> /usr/java/jdk1.8.0_351-amd64/bin/javah
lrwxrwxrwx  1 root root 45 Dec  5 08:18 javah.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/javah.1
lrwxrwxrwx  1 root root 38 Dec  5 08:18 javap -> /usr/java/jdk1.8.0_351-amd64/bin/javap
lrwxrwxrwx  1 root root 45 Dec  5 08:18 javap.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/javap.1
lrwxrwxrwx  1 root root 45 Dec  5 08:18 javapackager -> /usr/java/jdk1.8.0_351-amd64/bin/javapackager
lrwxrwxrwx  1 root root 52 Dec  5 08:18 javapackager.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/javapackager.1
lrwxrwxrwx  1 root root 45 Dec  5 08:18 java-rmi.cgi -> /usr/java/jdk1.8.0_351-amd64/bin/java-rmi.cgi
lrwxrwxrwx  1 root root 39 Dec  5 08:18 javaws -> /usr/java/jdk1.8.0_351-amd64/bin/javaws
lrwxrwxrwx  1 root root 46 Dec  5 08:18 javaws.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/javaws.1
lrwxrwxrwx  1 root root 37 Dec  5 08:18 jcmd -> /usr/java/jdk1.8.0_351-amd64/bin/jcmd
lrwxrwxrwx  1 root root 44 Dec  5 08:18 jcmd.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jcmd.1
lrwxrwxrwx  1 root root 41 Dec  5 08:18 jconsole -> /usr/java/jdk1.8.0_351-amd64/bin/jconsole
lrwxrwxrwx  1 root root 48 Dec  5 08:18 jconsole.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jconsole.1
lrwxrwxrwx  1 root root 41 Dec  5 08:18 jcontrol -> /usr/java/jdk1.8.0_351-amd64/bin/jcontrol
lrwxrwxrwx  1 root root 36 Dec  5 08:18 jdb -> /usr/java/jdk1.8.0_351-amd64/bin/jdb
lrwxrwxrwx  1 root root 43 Dec  5 08:18 jdb.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jdb.1
lrwxrwxrwx  1 root root 38 Dec  5 08:18 jdeps -> /usr/java/jdk1.8.0_351-amd64/bin/jdeps
lrwxrwxrwx  1 root root 45 Dec  5 08:18 jdeps.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jdeps.1
lrwxrwxrwx  1 root root 37 Dec  5 08:18 jhat -> /usr/java/jdk1.8.0_351-amd64/bin/jhat
lrwxrwxrwx  1 root root 44 Dec  5 08:18 jhat.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jhat.1
lrwxrwxrwx  1 root root 38 Dec  5 08:18 jinfo -> /usr/java/jdk1.8.0_351-amd64/bin/jinfo
lrwxrwxrwx  1 root root 45 Dec  5 08:18 jinfo.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jinfo.1
lrwxrwxrwx  1 root root 36 Dec  5 08:18 jjs -> /usr/java/jdk1.8.0_351-amd64/bin/jjs
lrwxrwxrwx  1 root root 43 Dec  5 08:18 jjs.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jjs.1
lrwxrwxrwx  1 root root 37 Dec  5 08:18 jmap -> /usr/java/jdk1.8.0_351-amd64/bin/jmap
lrwxrwxrwx  1 root root 44 Dec  5 08:18 jmap.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jmap.1
lrwxrwxrwx  1 root root 36 Dec  5 08:18 jps -> /usr/java/jdk1.8.0_351-amd64/bin/jps
lrwxrwxrwx  1 root root 43 Dec  5 08:18 jps.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jps.1
lrwxrwxrwx  1 root root 43 Dec  5 08:18 jrunscript -> /usr/java/jdk1.8.0_351-amd64/bin/jrunscript
lrwxrwxrwx  1 root root 50 Dec  5 08:18 jrunscript.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jrunscript.1
lrwxrwxrwx  1 root root 42 Dec  5 08:18 jsadebugd -> /usr/java/jdk1.8.0_351-amd64/bin/jsadebugd
lrwxrwxrwx  1 root root 49 Dec  5 08:18 jsadebugd.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jsadebugd.1
lrwxrwxrwx  1 root root 39 Dec  5 08:18 jstack -> /usr/java/jdk1.8.0_351-amd64/bin/jstack
lrwxrwxrwx  1 root root 46 Dec  5 08:18 jstack.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jstack.1
lrwxrwxrwx  1 root root 38 Dec  5 08:18 jstat -> /usr/java/jdk1.8.0_351-amd64/bin/jstat
lrwxrwxrwx  1 root root 45 Dec  5 08:18 jstat.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jstat.1
lrwxrwxrwx  1 root root 39 Dec  5 08:18 jstatd -> /usr/java/jdk1.8.0_351-amd64/bin/jstatd
lrwxrwxrwx  1 root root 46 Dec  5 08:18 jstatd.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jstatd.1
lrwxrwxrwx  1 root root 42 Dec  5 08:18 jvisualvm -> /usr/java/jdk1.8.0_351-amd64/bin/jvisualvm
lrwxrwxrwx  1 root root 49 Dec  5 08:18 jvisualvm.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/jvisualvm.1
lrwxrwxrwx  1 root root 40 Dec  5 08:18 keytool -> /usr/java/jdk1.8.0_351-amd64/bin/keytool
lrwxrwxrwx  1 root root 47 Dec  5 08:18 keytool.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/keytool.1
lrwxrwxrwx  1 root root 45 Dec  5 08:18 native2ascii -> /usr/java/jdk1.8.0_351-amd64/bin/native2ascii
lrwxrwxrwx  1 root root 52 Dec  5 08:18 native2ascii.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/native2ascii.1
lrwxrwxrwx  1 root root 37 Dec  5 08:18 orbd -> /usr/java/jdk1.8.0_351-amd64/bin/orbd
lrwxrwxrwx  1 root root 44 Dec  5 08:18 orbd.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/orbd.1
lrwxrwxrwx  1 root root 40 Dec  5 08:18 pack200 -> /usr/java/jdk1.8.0_351-amd64/bin/pack200
lrwxrwxrwx  1 root root 47 Dec  5 08:18 pack200.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/pack200.1
lrwxrwxrwx  1 root root 43 Dec  5 08:18 policytool -> /usr/java/jdk1.8.0_351-amd64/bin/policytool
lrwxrwxrwx  1 root root 50 Dec  5 08:18 policytool.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/policytool.1
lrwxrwxrwx  1 root root 37 Dec  5 08:18 rmic -> /usr/java/jdk1.8.0_351-amd64/bin/rmic
lrwxrwxrwx  1 root root 44 Dec  5 08:18 rmic.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/rmic.1
lrwxrwxrwx  1 root root 37 Dec  5 08:18 rmid -> /usr/java/jdk1.8.0_351-amd64/bin/rmid
lrwxrwxrwx  1 root root 44 Dec  5 08:18 rmid.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/rmid.1
lrwxrwxrwx  1 root root 44 Dec  5 08:18 rmiregistry -> /usr/java/jdk1.8.0_351-amd64/bin/rmiregistry
lrwxrwxrwx  1 root root 51 Dec  5 08:18 rmiregistry.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/rmiregistry.1
lrwxrwxrwx  1 root root 42 Dec  5 08:18 schemagen -> /usr/java/jdk1.8.0_351-amd64/bin/schemagen
lrwxrwxrwx  1 root root 49 Dec  5 08:18 schemagen.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/schemagen.1
lrwxrwxrwx  1 root root 42 Dec  5 08:18 serialver -> /usr/java/jdk1.8.0_351-amd64/bin/serialver
lrwxrwxrwx  1 root root 49 Dec  5 08:18 serialver.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/serialver.1
lrwxrwxrwx  1 root root 43 Dec  5 08:18 servertool -> /usr/java/jdk1.8.0_351-amd64/bin/servertool
lrwxrwxrwx  1 root root 50 Dec  5 08:18 servertool.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/servertool.1
lrwxrwxrwx  1 root root 42 Dec  5 08:18 tnameserv -> /usr/java/jdk1.8.0_351-amd64/bin/tnameserv
lrwxrwxrwx  1 root root 49 Dec  5 08:18 tnameserv.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/tnameserv.1
lrwxrwxrwx  1 root root 42 Dec  5 08:18 unpack200 -> /usr/java/jdk1.8.0_351-amd64/bin/unpack200
lrwxrwxrwx  1 root root 49 Dec  5 08:18 unpack200.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/unpack200.1
lrwxrwxrwx  1 root root 38 Dec  5 08:18 wsgen -> /usr/java/jdk1.8.0_351-amd64/bin/wsgen
lrwxrwxrwx  1 root root 45 Dec  5 08:18 wsgen.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/wsgen.1
lrwxrwxrwx  1 root root 41 Dec  5 08:18 wsimport -> /usr/java/jdk1.8.0_351-amd64/bin/wsimport
lrwxrwxrwx  1 root root 48 Dec  5 08:18 wsimport.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/wsimport.1
lrwxrwxrwx  1 root root 36 Dec  5 08:18 xjc -> /usr/java/jdk1.8.0_351-amd64/bin/xjc
lrwxrwxrwx  1 root root 43 Dec  5 08:18 xjc.1 -> /usr/java/jdk1.8.0_351-amd64/man/man1/xjc.1

这个对应的就是jdk的安装地址了。
查找/etc/alternatives目录是做什么的,发现alternatives这个命令。


标签:java,jdk,18,08,切换,linux,Dec,root,lrwxrwxrwx
From: https://www.cnblogs.com/pong137/p/16954596.html

相关文章

  • Windows下使用vscode连接Linux服务器进行C++代码运行与调试
    参考链接:vscode+SSH配置https://blog.csdn.net/irober/article/details/112724986launch.json+tasks.json配置https://blog.csdn.net/jackuylove/article/deta......
  • 查找linux下进程占用CPU过高的原因,以php-fpm为例
    很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因。1、找出占用CPU最高的10个进程psaux|sort-k3nr|head-n10或查看占用内存最高的1......
  • Linux进程和计划任务管理
    进程和计划任务管理文章目录进程和计划任务管理一、程序和进程的关系二、查看进程信息三、查看静态的进程统计信息1.ps-elf:2.pgrep命令查看进程信息3.查看进程信息四、......
  • MHA高可用配置及故障切换
    一、案例概述传统的MySQL主从架构存在的问题●单点故障为了解决单点故障所带来的的影响,我们可以使用MHA高可用架构。二、案例前置知识点1.MHA概述●MHA(MasterHigh......
  • 3.2.Linux-文本过滤与处理-comm指令:以行为单位比较两个已排序文件
    1.comm指令这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成3列显示:第1列仅是在第1个文件中出现过的列,第2列......
  • linux history不记录历史命令
    目录linuxhistory不记录历史命令不记录历史命令执行使用history-d删除指定命令记录编辑~/.bash_history文件删除历史记录使用sed命令快速删除的技巧执行命令前加入空......
  • 【Linux】Jenkins之Pipeline的使用(五)
    概念是一套运行在Jenkins上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。优势代码:Pipeline......
  • Linux的free命令与OOM的简单总结
    简介查看操作系统配置最关键的几个命令是lscpu查看CPU信息以及free查看内存信息.不过free信息有一个疑惑点他的free的值可能很小.会让搭建产生误解.这里简单说......
  • 从零开始实现一个Linux容器
    欢迎来到猫猫的C语言实验室喵!序言:文中所述源码是以MIT协议开源的,本文转载请注明原创作者为Moe-hacker,除此之外无其他要求。作者其实想将本文改名为《Re:从零开始的conta......
  • 浅谈Linux容器安全:chroot,capability与namespace技术
    作者只是个萌新,大佬轻喷。文章最终确定以时间顺序浅谈Linux容器安全原理。安全原理相关知识网上已经有很多了,咱通过几个具体攻击实例来讲讲它们的真实作用。演示均在猫......