演示效果
脚本内容
@echo offset java=C:\Installations\develop\Javarem “echo=”是换行echo=if "%1"=="" (echo Usage:echo=echo jvm using show the java version in useecho jvm list show all versionecho jvm use ^<version^> switch versionecho=) else if "%1"=="use" (if "%2"=="" (echo Missing version parameters) else (rem enabledelayedexpansion开始变量延迟,不开启的话会在变量重新赋值的时候只能获取到上次的结果setlocal enabledelayedexpansionset result=falsefor /f %%i in ('dir /b %java%\jdk') do (if "%%i"=="%2" set result=true)rem 使用!var!开始变量延迟if !result!==true (if exist %java%\current (rd /s/q %java%\current)mklink /J %java%\current %java%\jdk\"%2") else echo Current version is not existrem 开启变量延迟会把!!过滤掉,所以不需要延迟就把变量延迟关闭disabledelayedexpansionsetlocal disabledelayedexpansion)) else if "%1"=="list" (dir /B %java%\jdk) else if "%1"=="using" (java --version) else echo Syntax error
使用方法
- 指定一个path目录作为根目录,然后将path/current(current是固定的,不要改变,除非你修改脚本)配置成JAVA_HOME(我指定的path是C:\Installations\Java)
- 配置环境变量,在系统或者用户的path后添加%JAVA_HOME%\bin
- 在path目录下新建一个jdk的目录,将下载的jdk解压至jdk目录下,解压的jdk可以重名成jdk的版本号(如v11、11这样的字样,这个很重要,在使用命令切换版本的时候需要输入这个重命名的名称)
- 新建一个名称为jvm.bat的文件,将文章开始的bat脚本内容复制到jvm.bat中,将set java的值改成你本地的path,并将jvm.bat文件放在已经配置了环境变量的目录下,为了在cmd中的任意目录下都可以调用,如果新建好不能调用jvm命令,可以重启电脑后再去调用jvm
目录结构
``` // 只显示了当前目录的2层目录 C:\INSTALLATIONS\DEVELOP\JAVA
├─jdk ├─v11 │ ├─bin │ ├─conf │ ├─include │ ├─jmods │ ├─legal │ └─lib └─v15 ├─bin ├─conf ├─include ├─jmods ├─legal └─lib ```
