演示效果

jvm.gif

脚本内容

  1. @echo off
  2. set java=C:\Installations\develop\Java
  3. rem echo=”是换行
  4. echo=
  5. if "%1"=="" (
  6. echo Usage:
  7. echo=
  8. echo jvm using show the java version in use
  9. echo jvm list show all version
  10. echo jvm use ^<version^> switch version
  11. echo=
  12. ) else if "%1"=="use" (
  13. if "%2"=="" (
  14. echo Missing version parameters
  15. ) else (
  16. rem enabledelayedexpansion开始变量延迟,不开启的话会在变量重新赋值的时候只能获取到上次的结果
  17. setlocal enabledelayedexpansion
  18. set result=false
  19. for /f %%i in ('dir /b %java%\jdk') do (
  20. if "%%i"=="%2" set result=true
  21. )
  22. rem 使用!var!开始变量延迟
  23. if !result!==true (
  24. if exist %java%\current (rd /s/q %java%\current)
  25. mklink /J %java%\current %java%\jdk\"%2"
  26. ) else echo Current version is not exist
  27. rem 开启变量延迟会把!!过滤掉,所以不需要延迟就把变量延迟关闭disabledelayedexpansion
  28. setlocal disabledelayedexpansion
  29. )
  30. ) else if "%1"=="list" (
  31. dir /B %java%\jdk
  32. ) else if "%1"=="using" (
  33. java --version
  34. ) else echo Syntax error

使用方法

  1. 指定一个path目录作为根目录,然后将path/current(current是固定的,不要改变,除非你修改脚本)配置成JAVA_HOME(我指定的path是C:\Installations\Java)
  2. 配置环境变量,在系统或者用户的path后添加%JAVA_HOME%\bin
  3. 在path目录下新建一个jdk的目录,将下载的jdk解压至jdk目录下,解压的jdk可以重名成jdk的版本号(如v11、11这样的字样,这个很重要,在使用命令切换版本的时候需要输入这个重命名的名称)
  4. 新建一个名称为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 ```