如何实现Java JDK的多版本共存&&一键切换版本

这篇具有很好参考价值的文章主要介绍了如何实现Java JDK的多版本共存&&一键切换版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、版本共存

学习Java最一开始就是需要做环境配置啦,安装JDK是必不可少的。大家都知道JDK是Java开发者工具包,那么一般来说要选择什么样的版本来安装呢?可以安装多个JDK吗?是否可以我随时想切换哪个JDK就使用哪个呢?
下面我会主要说明如何实现Java JDK的多版本共存。

1. 首先简要回复一下上面两个问题:选择什么样的版本来安装呢?可以安装多个JDK吗?

一般来说,企业开发习惯用JDK8老版本,因为老版本经历了这么多年的使用,相对稳定。新版本JDK也会有很多老版本没有的新东西。一台电脑可以安装多个JDK。
另外,安装JDK推荐安装LTS版(注意:最好是长期支持版),例如:JDK8、JDK11、JDK17、JDK21...
我们可以去Oracle官网下载:https://www.oracle.com

2. 下面详细阐述一下第三个问题:是否可以我随时想切换哪个JDK就使用哪个呢?

答案是可以的。举个例子,我们可以根据使用需要,按常规步骤安装不同版本的jdk到系统里面,通过设置环境变量来是实现不同版本直接切换,就不需要进行多次重复的安装和卸载了。(这里拿Windows系统举例)

①先安装不同版本的jdk到系统里面。

我是安装了JDK8JDK21两个版本。(注意:两个版本安装路径最好是不一样的,避免一下子眼花混淆 _

②接下来配置JAVA_HOME环境变量。

这一步是为了告诉操作系统JDK安装在了哪个位置。(将来其他技术要通过这个环境变找JDK )
首先,找到JDK位置(一般是在bin包上一层的路径)=> 右键此电脑 => 属性 => 高级系统设置 => 环境变量
接下来,如果只装一个JDK的按照我下面的步骤配置即可:
(新建一个JAVA_HOME => 变量名:JAVA_HOME 变量值:JDK路径 => 确定)
如果要实现多个JDK,可以像我下面这样写:
java不同版本共存,java,jdk

JAVA8_HOME =jdk1.8的安装路径根目录
JAVA21_HOME =jdk1.21的安装路径根目录
JAVA_HOME = %JAVA21_HOME% (切换jdk版本就改这里)
另外,不需要纠结配置环境变量放在用户变量还是系统变量的问题。其实放在系统变量就是任何用户都可以用到,放在用户变量就只是当前用户可以用到。(我这里JDK8以前装在C盘配置在系统配置里也懒得动了,JDK12装在了D盘在用户配置,这个其实是不影响的)

③接下来我们配置PATH环境。

Path环境变量是用于记住程序路径的,方便在命令行窗口的任意目录启动程序。

具体步骤:找到可执行文件的路径(一般在Bin包里面),此电脑右键 => 属性 => 高级系统设置 => 环境变量 => 双击path => 新建粘贴路径【这里一般是写%JAVA_HOME%\bin】 => 重启命令行窗口

这里说明一下,系统变量优先级是高于用户变量的。换句话说,环境变量设置相同,先在系统变量找,找不到再去用户变量找。如果有多个值,排在最前面的最上面的优先级更高。(如果你不放心,在用户变量里面加设一个也可以)
到这里基本就配置好了。使用的时候根据使用需求可以切换不同JDK版本,直接修改JAVA_HOME = %JAVA8_HOME% (其他配置无需做任何修改)

例如:

使用jdk1.8,修改JAVA_HOME = %JAVA8_HOME%
使用jdk1.21时,修改JAVA_HOME = %JAVA21_HOME%

※ 另外,我们还是要注意一些小问题。
比如说我们更改了JAVA_HOME = %JAVA8_HOME%,可是却系统还是显示JDK21。那么要如何解决呢?

① 有可能环境变量做好切换设置后,没有重新打开命令行窗口来查版本,所以我们需要关闭命令行窗口后重新打开再来查版本(java -version)。

② 优先级的问题。前面提到了”变量中如果有多个值,排在最前面的最上面的优先级更高。”

所以应该是系统在Path中默认启用了一个系统自带的JDK,优先启用排序最前的,可以把%JAVA_HOME%\bin(下图红框路径)上移到那个javapath(下图蓝线的路径)上方即可解决。
java不同版本共存,java,jdk
我们可以重新打开命令行窗口查看版本:
java不同版本共存,java,jdk

二、windows下JDK版本切换脚本

初衷

前几天在一个技术交流群中看到技术人应该怎样去扩展自己的知识,去发现新的技术。其中有一条就是:当你对当前的工作感到厌倦的时候就应该去思考是否可以对其进行优化,比如我在重复的打开环境变量,修改JDK版本号的时候,就为每天都要进行此操作而感到厌倦,以至于内心开始拒绝去切换JDK版本,拒绝去做需要在另一个版本上的工作。

research过程

首先我搜索的关键字是jdk版本切换,其搜索结果都是怎样设置多JDK版本,怎样去修改环境变量。但是这些结果并不是我想要的,不过我确实是想要切换JDK版本啊,为什么没搜到结果呢。

当搜索不到结果的时候,首先考虑我们的搜索关键字是否准备

再次思考,我其实不是想切换JDK版本,而是想更方便的切换JDK版本,怎样会更方便呢,比如只点一个按钮即可。那其实可以通过脚本去实现这个功能,所以我的搜索条件变成了windos切换JDK版本脚本然后就搜索到了想要的结果。

脚本

@echo off
rem ---  UTF-8运行 ---
chcp 65001
rem ---  bat怎样自动以管理员身份运行 ---
pushd "%CD%"
cd /d "%~dp0"
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else (
    goto gotAdmin
)
:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    exit /B
:gotAdmin
    if exist "%temp%\getadmin.vbs" (
        del "%temp%\getadmin.vbs"
    )
    pushd "%CD%"
    cd /d "%~dp0"
 
rem --- Base Config 配置JDK的安装目录---
:init 
set JAVA21_HOME=C:\Program Files\Java\jdk-21
set JAVA8_HOME=C:\Program Files\Java\jdk-1.8
rem 刷新环境变量的程序,绝对路径
set RefreshEnv=D:\APPEXE\jdk\RefreshEnv.exe
echo 当前使用的JDK版本: 
echo ============================================= 
java -version 
echo. 
echo ============================================= 
echo jdk版本列表〃 
echo 8
echo 21
echo ============================================= 
 
:select
set /p opt=请选择jdk版本:
if %opt%==8 (
    set TARGET_JAVA_HOME=%JAVA8_HOME%
)
if %opt%==21 (
    set TARGET_JAVA_HOME=%JAVA21_HOME%
)
 
echo 当前选择的Java路径:%TARGET_JAVA_HOME%
 
wmic ENVIRONMENT where "name='JAVA_HOME'" delete
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%TARGET_JAVA_HOME%"
 
rem 刷新环境变量
call %RefreshEnv%

echo 按任意键退出!  
pause>nul
 
@echo on

使用的脚本
RefreshEnv.exe
switchVersion.bat
下载链接: jdkref.rar
注意:脚本使用完后需要重新加载所使用的程序,以防当前环境未能及时切换,当然重启是一劳永逸的办法。文章来源地址https://www.toymoban.com/news/detail-853958.html

到了这里,关于如何实现Java JDK的多版本共存&&一键切换版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 电脑上安装多个JDK版本时如何自由切换

    使用java的过程中,难免会遇上JDK版本不一致的问题,面对JDK的版本切换,总想要寻找一种自由的切换方法。 那么下面的解答就是对这个问题的回答。 JDK的安装教程可以在其他文章中找到,这里就不进行赘述了。 在自己的电脑上安装完成不同版本的JDK,如下图所示。 然后,

    2024年02月09日
    浏览(42)
  • mac 切换java jdk版本 java8 java11

    1.   终端执行命令  查看本地各版本jdk:mac通常默认安装了jdk1.8 安装目录是 /Library/Java/JavaVirtualMachines/ cd /Library/Java/JavaVirtualMachines/ ls 2.   上述命令列出的各版本目录名 后,在全局配置文件.bash_profile中新增上面命令列出的各版本jdk,并指定当前环境变量默认的版本为jdk1.8

    2024年02月16日
    浏览(42)
  • 用Idea开发JAVA项目多JDK版本切换

    在我们项目开发的过程中可能会遇到JDK版本过高或者过低导致一些程序无法启动,不兼容的问题。所以我们需要切换JDK的版本号,目前JDK8是比较稳定的。接下来分享一下如何在IDEA中切换JDK的版本。 1.点击File中的Project Structure这个选项 2.点击SDKs按钮 3.点击“+”按钮,然后点击

    2024年02月16日
    浏览(42)
  • 多个 JDK 版本(Java 8、Java 17、Java 21)下载和切换

    随着 Spring Boot 的版本不断迭代更新,新发布的 Spring Boot 版本已经不再支持 JDK 8, 对 JDK 版本的最低要求为 17 。 所以,为了在实际中可以任意选择所需的 JDK 版本,将 多个 JDK 版本切换的方法 总结如下: JDK 不同版本可以在 Oracle 官网下载, 下载地址 :点此进入 选择所需的

    2024年02月03日
    浏览(41)
  • ubuntu20.04下多版本opencv共存和切换

    之前在ubuntu20.04系统上已经安装了opencv4.5.5和扩展库opencv_contrib4.5.5,但是最近需要跑一下PL-SLAM的源代码,而PL-SLAM系统是基于opencv3.x.x开发的,直接运行会出现很多opencv版本不兼容的问题。因此想再安装opencv3.4.5和扩展库opencv_contrib3.4.5,过程中出现了很多问题,写这篇文章记录

    2024年02月08日
    浏览(102)
  • Kali安装JAVA8和切换JDK版本的详细过程

    一、安装JDK1.8 1、直接使用下面的地址下载java 1.8: https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz 2、建立目录,将下载的jdk的安装包复制过去并进行解压 3、配置环境变量(注意下面的版本号要与自己下载的相同) 打开文件/etc/profile 添加下列代码到文件中     

    2024年02月14日
    浏览(31)
  • Ubuntu20.04 系统安装多个版本的 JDK【多版本jdk切换:sudo update-alternatives --config java】

    目前Java版本更新很快,每半年推出一个版本,因此我们可能需要在自己的电脑上安装不同版本的JDK,以便于我们学习使用,本文主要介绍了在Ubuntu18.04系统上安装JDK(OpenJDK 、 Oracle JDK)以及管理不同版本JDK(JDK1.8、JDK9、JDK10等)的方法。 第一种:安装系统自带的 OpenJDK 因为

    2024年02月09日
    浏览(48)
  • Ubuntu20.04 OpenCV详细安装教程(附多版本切换共存教程)

    opencv安装有两种方式: 1.使用包管理器安装预编译版本(安装十分简单,但是 版本只有4.2.0 ,且没有扩展模块且不支持Qt窗口) 2.从源码安装(比较复杂,但是推荐) 这样就安装完成了 这种安装方法,默认把opencv相关文件放置在系统目录 官网下载地址 https://opencv.org/release

    2024年03月13日
    浏览(80)
  • 一键切换jdk

    原理为脚本修改环境变量

    2024年02月08日
    浏览(20)
  • Hombrew中AdoptOpenJDK已废弃更换Eclipse Temurin安装最新版JDK,并实现不同JDK版本之间切换

    😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门

    2024年02月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包