IT评测·应用市场-qidao123.com

标题: java多版本共存 [打印本页]

作者: 风雨同行    时间: 2023-4-16 14:13
标题: java多版本共存
原理

通过脚步改变path环境变量来实现java多版本切换.这里使用的是Win10.
一,删除原有的java搜索路径.

在安装高版本的java时,会添加一个路径到path环境变量中,如我的C:\Program Files\Common Files\Oracle\Java\javapath,在该目录下存有java.exe和javac.exe等.在用cmd执行命令时,cmd会在path变量包含的路径中查找.你需要在环境变量中删除该路径.
二,设置JAVA_HOME和%JAVA_HOME%\bin

在环境变量中添加JAVA_HOME,值为jdk的安装路径,如下图:

在path变量中添加一条%JAVA_HOME%\bin.通过%变量名%的方式来调用变量,这里有点像字符串拼接.在%JAVA_HOME%\bin下,你可以找到java.exe与javac.exe.在path中添加后,cmd也能找到.
三,安装其他版本的java

这里后来安装了java8.它的安装过程中不会自动改变环境变量,如果你安装的是其他版本,可能需要留意这个问题,删除新加的路径以免产生干扰.
四,编写.bat文件

文件名:setjava8.bat,内容如下
  1. @echo off
  2. set JAVA_HOME=D:\Program Files\Java\jdk1.8.0_201
  3. set Path=%JAVA_HOME%\bin;%Path%
  4. echo -------path环境未使用C:\Program Files\Common Files\Oracle\Java\javapath---
  5. echo -------setjava8.bat位于system32中---
  6. echo -------JAVA_HOME=%JAVA_HOME%----
  7. echo -------Java8 activated,仅当前窗口有效---
复制代码
它的作用:改变JAVA_HOME的值,重新拼接一个路径到path变量值,严格来讲是覆盖与原有的path.
ehco的作用是在命令行打印字符.
你可以把setjava8.bat文件放在path中包含的路径下.当然, 得是改变前的path变量的路径.我把他放在在\windows\system32中,这是path变量中原有的路径.这个目录有特殊的权限规则.
你甚至可以把他放在%JAVA_HOME%\bin下.这要求你的路径设置是正确的,以便在改变%JAVA_HOME%\bin前可以找到.
如果你有需求,可以对文件内容进行修改,比如改改echo 后面的内容.
五,生效

如果你看懂了.bat文件里的内容,会发现核心就两句:
set JAVA_HOME=D:\Program Files\Java\jdk1.8.0_201 set Path=%JAVA_HOME%\bin;%Path%
如果你只需要在命令行执行,可以缩成一句:
set Path=D:\Program Files\Java\jdk1.8.0_201\bin;%Path%
不过JAVA_HOME有特殊的意义.
它们的目的是在找到java16的java.exe等文件之前先在java8里找到了.这使得cmd在执行java -version时,使用的是java8
如果你完成了,使用效果是这样的:

六,遇到的各种问题


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4