切换多个Java版本的解决方案

 更新时间:2025年12月10日 09:37:30   作者:普通网友  
文章主要介绍了在实际开发中需要切换Java版本的原因,以及三种常见的Java版本管理工具:jenv、SDKMAN!和自定义脚本,每种工具都有其特点和适用场景,帮助开发者在不同Java版本之间进行快速切换和管理,需要的朋友可以参考下

安装了多个java 如何切换java版本

问题描述

平常用的是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:javajava9jdk-9in;%path%

其中:

E:javajava9jdk-9in

是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,开头的Cchange的意思.

@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 环境变量名 环境变量值 /msetx设置环境变量需要管理员权限,以管理员身份,运行上面的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

到此这篇关于切换多个Java版本的解决方案的文章就介绍到这了,更多相关多个版本Java切换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Spring项目中DTO层的作用和最佳实践

    在Spring项目中DTO层的作用和最佳实践

    本文介绍了DTO(Data Transfer Object)在Spring项目中的作用和最佳实践,通过本文,读者可以更好地理解DTO在Spring项目中的重要性和如何合理设计DTO以满足业务需求,感兴趣的朋友跟随小编一起看看吧
    2026-02-02
  • Mybatis多个字段模糊匹配同一个值的案例

    Mybatis多个字段模糊匹配同一个值的案例

    这篇文章主要介绍了Mybatis多个字段模糊匹配同一个值的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 详解Java项目中读取properties文件

    详解Java项目中读取properties文件

    本篇文章主要介绍了Java项目中读取properties文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • C++ 虚函数与纯虚函数代码详解

    C++ 虚函数与纯虚函数代码详解

    本文主要介绍了C++ 虚函数与纯虚函数的使用与区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 详解Spring Boot使用redis实现数据缓存

    详解Spring Boot使用redis实现数据缓存

    本篇文章主要介绍了详解Spring Boot使用redis实现数据缓存,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • java实现简单聊天室单人版

    java实现简单聊天室单人版

    这篇文章主要为大家详细介绍了java实现简单聊天室的单人版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Java中的三元运算(三目运算)以后用得到!

    Java中的三元运算(三目运算)以后用得到!

    Java提供了一个三元运算符,可以同时操作3个表达式,下面这篇文章主要给大家介绍了关于Java中三元运算(三目运算)的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Java如何简单快速入门JWT(token生成与验证)

    Java如何简单快速入门JWT(token生成与验证)

    这篇文章主要给大家介绍了关于Java如何简单快速入门JWT(token生成与验证)的相关资料,JWT是一个加密的字符串,JWT传输的信息经过了数字签名,因此传输的信息可以被验证和信任,需要的朋友可以参考下
    2023-12-12
  • 基于Java web服务器简单实现一个Servlet容器

    基于Java web服务器简单实现一个Servlet容器

    这篇文章主要为大家详细介绍了基于Java web服务器简单实现一个Servlet容器,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Java中的Semaphore计数信号量详细解析

    Java中的Semaphore计数信号量详细解析

    这篇文章主要介绍了Java中的Semaphore计数信号量详细解析,Semaphore 是一个计数信号量,必须由获取它的线程释放,常用于限制可以访问某些资源的线程数量,例如通过 Semaphore 限流,需要的朋友可以参考下
    2023-11-11

最新评论