Java多个版本切换的几种方法
作者:蓝蓝223 发布时间:2022-04-22 14:10:15
问题描述
平常用的是java8
,最近在学习java
的新特性。这就需要从java8
往更高的java
版本切换。由于还在使用java8
,测试完新特性后我需要再切换回java8
.
如何切换
安装java
的时候我们会配置JAVA_HOME
这个环境变量.所有要切换java
版本,只需要修改JAVA_HOME
即可,在JAVA_HOME
里面写上java8
的安装目录,那就使用的是java8
,JAVA_HOME
里面写上java9
的安装目录,则使用的是java9
。
解决方案
手动切换
手动修改,JAVA_HOME
中的地址即可,这里不介绍。
在cmd中临时切换java版本
例如现在在cmd中,临时需要用到java9的jshell,可以输入如下命令进行设置:
set path=E:\java\java9\jdk-9\bin;%path%
其中:
E:\java\java9\jdk-9\bin
是jdk9的安装路径.
批处理实现
因为手动修改JAVA_HOME
,太过繁琐,所以通过一个批处理程序来实现.
新增环境变量
新增JAVA_HOME_8
,JAVA_HOME_9
,JAVA_HOME_11
分别写入java8
,java9
,java11
的安装目录,这和配置JAVA_HOME
一样.
批处理脚本
创建一个名为快捷方式
的目录。
TJava.bat
在这个快捷方式
目录下新建TJava.bat
,写入如下命令:
@echo off
java -version
pause
运行这个批处理就可以看到当前用的是哪个java
版本了.这里使用批处理是为了快速运行这个java -version
命令,不用手动操作。
CJavaBat.bat
然后在快捷方式
下,创建批处理脚本CJavaBat.bat
,开头的C
是change
的意思.
@echo off
@echo ------------------------------------------------
@echo 当前Java版本为:
call TJava.bat
@echo ------------------------------------------------
@echo 输入要使用的java版本对应的选项:
@echo 选项 含义
@echo 8 切换环境为JDK8
@echo 9 切换环境为JDK9
@echo 11 切换环境为JDK11
@echo ------------------------------------------------
set /P choose=请输入选择:
IF "%choose%" EQU "8" (
REM 修改JAVA_HOME环境变量为%JAVA_HOME_8%,
setx "JAVA_HOME" "%%JAVA_HOME_8%%" /m
echo 已经修改 "JAVA_HOME" 为 %%JAVA_HOME_8%%
) ELSE IF "%choose%" EQU "9" (
setx "JAVA_HOME" "%%JAVA_HOME_9%%" /m
echo 已经修改 "JAVA_HOME" 为 %%JAVA_HOME_9%%
REM setx "Path" "%cd%;%path%" /m
) ELSE IF "%choose%" EQU "11" (
setx "JAVA_HOME" "%%JAVA_HOME_11%%" /m
echo 已经修改 "JAVA_HOME" 为 %%JAVA_HOME_11%%
)
pause
上面程序中的setx
命令就是用来修改环境变量的.语法格式为:setx 环境变量名 环境变量值 /m
。setx
设置环境变量需要管理员权限,以管理员身份,运行上面的CJavaBat.bat
就可以修改JAVA_HOME
环境变量的内容,从而切换Java
版本。
给CJavaBat.bat
设置管理员权限
创建CJavaBat.bat
的快捷方式,然后将这个快捷方式
重命名为CJava
,注意一定要修改名字。
然后在快捷方式
上面右键。选择属性
,在快捷方式
选项卡上,点击高级
,然后勾选上用管理员身份运行
。
这样以后直接点击CJava
这个快捷方式就可以以管理身份运行CJavaBat.bat
这个批处理脚本了。
配置CJava到Path环境变量
将这个快捷方式
目录配置到Path
环境变量中,这样系统会在这个目录下查找程序,
通过Win+R运行CJava
然后就可以按下Win+R
来启动运行,结束输入CJava
,即可启动程序。
CJava程序说明
在CJava
中输入选项:8,则切换到Java8
,输入9,则切换到Java9
,输入11则切换到java11
,依次类推,可以拓展上面的程序,以支持切换更多的java
版本。
CJava运行效果
------------------------------------------------
当前Java版本为:
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
请按任意键继续. . .
------------------------------------------------
输入要使用的java版本对应的选项:
选项 含义
8 切换环境为JDK8
9 切换环境为JDK9
11 切换环境为JDK11
------------------------------------------------
请输入选择:11
成功: 指定的值已得到保存。
已经修改 "JAVA_HOME" 为 %JAVA_HOME_11%
请按任意键继续. . .
可以看到切换之前是Java8
,切换后为Java11
查看是否切换成功
运行上面创建TJava.bat
,查看运行效果:
java version "11.0.4" 2019-07-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)
请按任意键继续. . .
可以看到现在已经成功切换为Java11
了
来源:https://blog.csdn.net/qq_21808961/article/details/102217844


猜你喜欢
- 觉得作者写得太好了,不得不收藏一下。对这个例子的理解://类型参数不能用基本类型,T和U其实是同一类型。//每次放新数据都成为新的top,把
- 前言 图片加水印:Springboot 图片需要添加水印,怎么办? 1秒就实现那么word文档替换文字、插入图片,当然也是1秒钟了
- 有时候,我们在同一个activity里面有很多fragment,在横竖屏的时候,有些fragment要求重新加载数据,有些不需要,如何简单控
- 前言今天收到一封邮件,大概内容如下:spring boot鼓励去配置化,那么怎么将第三方jar包中的xml去配置化了?其实,这个问题,在前面
- private void showPopupView() { if (mPopupWindow ==
- 最近,Oracle 宣布 Java 14(或 Oracle JDK 14)公开可用。如果你想进行最新的实验或者开发的话,那么你可以试试在 L
- 本文实例讲述了C#遍历指定目录下所有文件的方法。分享给大家供大家参考。具体分析如下:先通过DirectoryInfo打开指定的目录,然后通过
- 本文实例讲述了Jexcel实现按一定规则分割excel文件的方法。分享给大家供大家参考。具体如下:现有一个excel文档,需要读取它并按照一
- BeanFactoryBeanFactory是Spring中容器功能的基础,用于存放所有已经加载的bean,为了保证程序上的高可扩展性,Sp
- 本文实例讲述了Java泛型类与泛型方法的定义。分享给大家供大家参考,具体如下:Java泛型类的定义一 点睛泛型类定义的语法如下:[访问修饰符
- The error simply says, “you've made changes in files in your works
- 本文实例为大家分享了unity通过Mesh网格绘制球体的具体代码,供大家参考,具体内容如下接着上一篇文章说:球体public class 球
- 结构型设计模式创建型设计模式主要是为了解决创建对象的问题,而结构型设计模式则是为了解决已有对象的使用问题。适配器模式适配器模式比较好理解,因
- 前文说到 优雅的使用枚举参数 和 实现原理,本文继续说一下如何在 RequestBody 中优雅使用枚举。本文先上实战,说一下如何实现。在
- JVM内存模型/内存空间Java虚拟机JVM运行起来,就会给内存划分空间,这块空间成为运行时数据区。运行时数据区主要划分为以下 6
- 概念IO流可以初步的理解为数据间的传输,我们将一组数据入:1234567,将他们从hello文件中转入haha文件中,使用程序的方法进行转入
- Java中的final关键字1、修饰类的成员变量 这是final的主要用途之一,和C/C++的const,即该成员被修饰为常量,意味着不可修
- 本文实例为大家分享了SpringBoot获取yml和properties配置文件的具体代码,供大家参考,具体内容如下(一)yml配置文件:p
- 传播inbound事件有关于inbound事件, 在概述中做过简单的介绍, 就是以自己为基准, 流向自己的事件, 比如最常见的channel
- 本文实例讲述了C#递归实现回文判断算法,分享给大家供大家参考。具体实现方法如下:static void Main(string[] args