天天看点

kali linux 多版本jdk安装切换管理

最近更新了kali 系统,把jdk更新到了9.0.4,结果导致破解burpsuite1.7.32的注册机不能用了。好像这个注册机遇到高版本的jdk就不能用了。降低jdk的版本,找了半天,找到了一个完美的解决办法。

首先去java网站下载jdk包:http://www.oracle.com/technetwork/java/javase/downloads/index.html

然后把jdk包解压在一个文件夹里面:

配置环境变量

export JAVA_HOME=/package/jdk1._80
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
           

给jdk1.8设置序列号:

先看一下当前的jdk版本号:

root@kali:/package# java -version
openjdk version "9.0.4"
OpenJDK Runtime Environment (build .+-Debian-)
OpenJDK -Bit Server VM (build .+-Debian-, mixed mode)
root@kali:/package# 
           

然后我们设置一下需要的jdk版本:

[email protected]:/package# update-alternatives  --config  java
有 3 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                          优先级  状态
------------------------------------------------------------
* 0            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       1091      自动模式
  1            /package/jdk1.8.0_161/bin/java                   3         手动模式
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      手动模式
  3            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       1091      手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:1
update-alternatives: 使用 /package/jdk1.8.0_161/bin/java 来在手动模式中提供 /usr/bin/java (java)
[email protected]:/package# 
           

注意:

  1. debian下的这个软件版本管理工具叫 update-alternatives
  2. 给某版本软件设置序列号时,install选项的参数是这样的:

path一定要指向一个可执行的名字叫java的脚本,比如上面的:/package/jdk1.8.0_161/bin/java

在使用update-alternatives 的过程中,我发现了一些不算问题的问题。

在上面的教程中,我们通过该命令在/usr/bin 目录下创建可执行文件的软链接,比如在/usr/bin目录下创建gcc, jdk的软链接,进而达到改变gcc,jdk版本的问题。但是如果你自己手动按转一个版本的gcc在/usr/local/bin 目录下,并且可执行文件的名字也叫gcc,那么你会发现,update-alternative 不再起作用了,无论怎么修改,gcc命令都是我们自己安装的哪个版本。这是因为/usr/local/bin 目录的优先级高于/usr/bin , 二者都在path 环境变量里,一旦两个目录里都有叫做gcc的可执行文件,系统就会优先使用/usr/local/bin 目录下的可执行文件。这种情况下无论怎样修改/usr/bin 目录下的软链接都不会起作用了。

继续阅读