kali系统下多版本JDK共存

0、前言

从上周末到这周都在做RCE(Remote Command/Code Execute,远程命令执行或者代码执行 )相关漏洞复现,像log4j2漏洞在复现过程用到的JDK有特定版本要求,我的kali虚拟机默认是JDK11,而我又不希望直接删除JDK11,可多个版本JDK共存,想用到哪个版本时切换,查询了相关资料,再自己实践后可行。因此整理了本文分享出来。

参考文章:
https://zhuanlan.zhihu.com/p/399295670
https://blog.csdn.net/u012804180/article/details/78858907

1、查看当前java版本号

查看版本号目的是为了方便后面要修改回这个版本时,切换命令的编写

#查看版本
java -version

# 结果
openjdk version "11.0.20-ea" 2023-07-18
OpenJDK Runtime Environment (build 11.0.20-ea+7-post-Debian-1)
OpenJDK 64-Bit Server VM (build 11.0.20-ea+7-post-Debian-1, mixed mode, sharing)

2、查看JDK安装目录

目的是想要把其他版本的JDK安装包放在一起,方便统一管理。先用which查看java在哪个目录下,使用cd切换目录时发现给出的路径不是目录,再使用ls -lrt命令来找到最终实际放JDK安装包的目录。

 # 使用which命令
which java

# 给出结果是,这个不是目录,cd时会提示
cd: 不是目录: /usr/bin/java

# 使用两次ls -lsr命令才找到实际放JDK安装包的目录
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java

# 实际放JDK安装包的目录是/usr/lib/jvm
cd /usr/lib/jvm

在这里插入图片描述

3、下载目标版本的JDK

由于我需要的是jdk-8u191的,我到官网下载linux系统64位,我测试过使用jdk-8u401安装完最后,在使用命令java -version查看版本时一直报错:zsh: 可执行文件格式错误: java,但使用jdk-8u191和jdk-8u151都正常,如果有使用到jdk-8u401版本异常的话可换其他版本。

官网下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
下载时需要登录,如果嫌麻烦,可关注我的公众号:大象只为你,回复:jdk8,获取jdk-8u191和jdk-8u151适用linux系统64位的安装包。

下载完后复制到目录/usr/lib/jvm

4、安装JDK

4.1、解压压缩包

使用tar命令解压缩

# 解压压缩包
tar -zxvf jdk-8u191-linux-x64.tar.gz  

tar 命令的一般格式:
tar [选项] 文件或目录名
该命令对文件和目录进行打包。
选项及其含义如下。
-f:文件名:使用指定的存档文件。
-c:创建一个新的文档。
-r:用于将文件附加到已存在的文档后面。
-u:仅仅添加比文档文件更新的文件。
-x:从文档文件中恢复被备份的文件。
-t:用于列出一个文档文件中的被备份出的文件名。
-z:用 zip 命令压缩或用 unzip 命令解压。

4.2、安装和配置

使用update-alternatives命令进行安装和设置jdk,可使多个版本共存,先install再set。在install时需要填写优先级,填写jdk版本号,jdk8的去掉中间0 ,jdk11全部拼接上,目的是让优先级的位数一样。

命令说明:先install 再set
-安装命令
update-alternatives: --install <链接> <名称> <路径> <优先级>
-设置命令–默认为当前版本
update-alternatives: --set <名称> <路径>
-移除命令,当不需要该版本时可移除命令,不会删除安装包
update-alternatives: --remove <名称> <路径>
-多版本JDK管理,切换其他版本时可用该命令
update-alternatives --config <名称>

以安装jdk-8u191为例

update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_191/bin/java 18191
update-alternatives --set java /usr/lib/jvm/jdk1.8.0_191/bin/java
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_191/bin/javac 18191
update-alternatives --set javac /usr/lib/jvm/jdk1.8.0_191/bin/javac

如果不要该版本可用以下命令进行移除

update-alternatives --remove java /usr/lib/jvm/jdk1.8.0_191/bin/java 
update-alternatives --remove javac /usr/lib/jvm/jdk1.8.0_191/bin/javac

切换其他版本时可使用以下命令

# 配置指定java版本
update-alternatives --config java
# 配置对应java文档版本,如果没有安装则不用选择,跟java同时操作
update-alternatives --config javac

在这里插入图片描述

5、下期内容预告

下期会分享跟RCE相关的内容,会先以ctfhub—rce通关热身,敬请期待…

6、资料获取

如果需要jdk-8u191或jdk-8u151适用linux系统64位的安装包,请关注我的公众号:大象只为你,后台回复:jdk8。如果需要kali虚拟机,后台回复:虚拟机。

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值