在做java代码审计时,为了要成功运行目标环境,时长要对于jdk版进行切换,且在装多个jdk时还时长会遇到安装配置后环境变量不生效的情况,下文介绍;
1、为什么安装了新的jdk,有的时候环境变量中的jdk版本确还是原来的版本
2、如何让本地环境可以快速切换jdk版本
安装新jdk后,但是java -version还是老版本的原因
出现安装新jdk后,但是java -version还是老版本的原因,其实就在于环境环境变量本身,因为java -version这条指令,本质是调用系统环境变量,找到jdk程序,然后将-version这条指令告诉jdk,此时jdk会告诉你具体版本。
知道了问题的大致原因,我们应该如何进行排查呢,别急让我们看了解一下java -version 这条指令是如何查找系统环境变量的。
即window环境的变量的生效顺序;
1、系统变量 > 用户变量。
也就是说,环境变量设置相同,先在系统变量里面找,找不到再到用户变量里面去找。
2、上位置变量>下位置变量
``就是说如果环境变量里面设置了几个同类变量,那么在上面的变量会优先生效,而在于其位置下的其他变量则不会生效
明白了window环境的变量的生效顺序,再来看“安装新jdk后,但是java -version还是老版本”的这个问题的排除思路就相对比较清晰了,即在系统变量中查看在自己设置的环境变量之前是否存在其他同类型变量。将其他变量删除或调整顺序即可。
列如path下
C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
如何让本地环境可以快速切换jdk版本
让本地环境可以切换jdk主要三个步骤
1、安装所需版本jdk
2、清理jdk安装时自动配置的环境变量
3、通过声明变量和引用变量的方式配置和调整环境变量
``也可以通过上面讲到的调整环境变量的位置来配置当前系统生效的环境变量
步骤1
自行下载,安装即可
步骤2
上面已经讲解具体方法,不在赘述
步骤3
1、给Path添加变量
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
![[Pasted image 20230428154612.png]]
2、设置CLASSPATH
变量名: CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
3、创建JDKHOME(重点)
4、创建 JAVA_HOME
变量名:JAVA_HOME
变量值:%具体的JDK%
修改此处变量值中的数字来达到启用所对应的jdk
执行java -version