前言
前几天想用 burp 抓包来着,发现 burp 突然不能用了,重装了 burp 发现还是不能用,意识到是 java 环境出了问题。在之前有段时间没玩 CTF ,去搞开发了,于是java环境糊里糊涂改成了 JAVA 18 ,结果之前的 burp 只能用 JAVA 8 的环境运行,并且后来还下了一个新版的 burp ,需要在 JAVA15 的环境运行,于是我的电脑里就有了三个版本的 JDK,而我又是开发和 CTF 双管齐下的,需要经常切换 JAVA 环境,所以写篇文章,写一下切换 JAVA 环境的技巧和方法。
tips:想看快速切换环境的技巧和方法的师傅,可以跳过配置JAVA环境这块
配置JAVA环境
首先我们先要在 Oracle 官网下载 JDK:https://www.oracle.com/java/technologies/downloads/
比如我下载了一个 JAVA18,安装目录如下
C:/Program Files/Java/jdk-18.0.2
配置环境变量
在配置之前我们先来了解一下什么是环境变量,有哪些环境变量需要配置,这些环境变量是怎么发挥作用的。
PATH:PATH是操作系统用的,用来指定操作系统需要使用到的可执行程序的位置。对于Java来说,通常需要把JDK的bin目录添加进入PATH中,这样你就可以在任意目录下使用bin下面的可执行程序,如javac.exe、java.exe等。
JAVA_HOME:JAVA_HOME是一个约定,通常它指的是JDK的目录。如果需要JDK的话,大部分程序会默认去环境变量中取JAVA_HOME这个变量。
CLASSPATH:告诉Java执行环境,在哪些目录下可以找到我们所要执行的Java程序所需要的类或者包。
理论讲完了,win10的话左下角输入“环境变量”,开始配置环境变量
先新建一个系统变量 JAVA_HOME,值为你安装的JDK路径
再新建一个系统变量 CLASSPATH,值为 .;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar
注意前面是有个 .; 的,这里的 . 代表当前目录,%JAVA_HOME% 代表你上面设置的系统变量 JAVA_HOME 的值,为什么要设置成 %JAVA_HOME%/lib 这样,而不是设置成绝对路径呢?其实这是为了之后更改JAVA_HOME的时候CLASSPATH能直接跟着改,就不需要一个一个改过去了,能方便很多
接下去我们找到Path路径,双击进入Path,新建
单纯配置一个JAVA环境的话,新建一个这个就行(我下面的两个是为了做Maven项目搭建的环境)
好了这样就配置成功了。
环境验证
win+R 打开cmd
输入 java -version 出现以下内容就行(我这里配置的是 JAVA15)
快速切换环境
环境切换
好了,最基本的环境设置搞好了,接下去的场景是,我们在不同的工作下需要用到不同的 JAVA 环境,那么我就讲一下我的经验,以及快速切换环境的方法和技巧。直接上图
如图所示,我的电脑上安装了三种版本的 JDK,在不同场景下要使用不同的 JDK,所以我配置了三个变量,用来标识 JAVA 版本号,那么也正如上图所示,其他的 CLASSPATH,包括Path,其实都只引用了 %JAVA_HOME%,所以这里的一个小技巧就是直接修改 JAVA_HOME 的值,想用 JAVA15的时候,就把值改成JAVA15的引用,想用 JAVA18 的时候,就把值改成 JAVA18 的引用,就可以达到快速的切换了。
小坑
有的时候我们会遇到这种情况,包括我也遇到过,我原本的环境是 JAVA18,当我想改到低版本,比如 JAVA8,的时候,cmd检查 JAVA 版本,发现并没有更改。
这是因为高版本的 JAVA 的 bin 文件夹中,有这三个文件:java.exe,javax.exe,javac.exe
如果你无法切换,那就把这三个文件删了,注意是删高版本JDK的这三个文件,如果发现还是不行,那就把低版本的也删了,总之删了就行。
有没有更方便更快捷的方法?
当然有,不过会比较难,如果你平常环境没有换的那么勤,其实这一步你不做也没事,但是如果你经常要换环境,每次打开环境变量进行手动修改也会很烦,那我们就可以用更快的方法。那就是脚本的自动化切换,我们写一个批处理脚本,也就是 .bat 脚本,实现自动化快速切换,不过这是要点基础的,但是如果你的环境变量的配置和我上面的一样,(设置了 JAVA_HOME ,设置了 JAVA_HOME18 等等其他版本),只要是格式相同,你可以直接参考我的另一篇文章,把批处理代码复制下来,运行直接用就行,不用去学些其他的东西了,我的另一篇博客如下:【Java】bat批处理脚本实现 Java 环境的快速切换
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/281350.html