关于我懒到极致不想太麻烦地切换java版本这件事

  首先自己寻找JDK并安装,我不提供。然后一一安装。 至于安装在哪里,就看你的喜欢和你的管理方式。高版本的安装其实很方便。
  我的java安装路径.PNG

  对于环境变量,先去Path把带java字眼的路径删掉。当然你也可先备份再删,也可以不删,只不过后续需要把添加的java相关路径放在前面。

  继续环境变量。对于CLASSPATH,有些ide需要,比如eclipse。它们之间比较玄学,所以还是保留者,没有就添上。由于要变更版本,所以要相对引用。不过不需担心,管它找不到找得到。

  由于高版本的JDK目录结构变了,以及由于Applet几乎不使用了,没有单独安装JRE了。所以可以参考我的设计方式,反正只要能到达手动切换也比较简单即可。

  我的设计如图。HOME是给CLASSPATH用的。每安装一个版本都要如图创建 JDKxx_HOMEJDKxx_JDK_JRE。当然你也可以创建一个bat(vbs或许更好吧),在安装时故意设计好安装路径,然后根据文件夹的名称来创建这两个变量。我就不需要了,我只简单搞了一个一键切换版本的。

  我java版本切换切换.PNG

  双版本之间切换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@echo off
:: 变量延迟 虽然感觉此处不需要
setlocal ENABLEDELAYEDEXPANSION

:: 管理员权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

::换成utf-8
chcp 65001

:: 预设环境变量
set jdk8_home=%JDK8_HOME%
set jdk8_java=%JDK8_JDK_JRE%
set jdk11_home=%JDK11_HOME%
set jdk11_java=%JDK11_JDK_JRE%

:: 当前
set current_home=%JAVA_HOME%
set current_java=%JAVA%

echo jdk8_home=%jdk8_home%
echo jdk8_java=%jdk8_java%
echo jdk11_home=%jdk11_home%
echo jdk11_java=%jdk11_java%
echo current_home=%current_home%
echo current_java=%current_java%

::交换,会换成绝对路径,要相对引用的话,可以用%%转义一个%,不过名字要改成环境变量的名字。
if "%current_java%" equ "%jdk8_java%" (
echo 换成11
SETX /M JAVA_HOME %jdk11_home%
SETX /M JAVA %jdk11_java%
) else (
echo 换成8
SETX /M JAVA_HOME %jdk8_home%
SETX /M JAVA %jdk8_java%
)

rem pause

  多个版本之间切换,输入型的。(傻逼了,直接根据输入进行拼接就可以了,那还要判断呀)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
@echo off
:: 变量延迟 虽然感觉此处不需要
setlocal ENABLEDELAYEDEXPANSION

:: 管理员权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

::换成utf-8
chcp 65001

::记住 set /a 执行数学计算
:: set /p 提示用户输入
set /p aim="你想要的java版本:"

:: 当前
set current_home=%JAVA_HOME%
set current_java=%JAVA%
echo current_home=%JAVA_HOME%
echo current_java=%JAVA%


::本想设计成map的方式的
if %aim% equ 8 (
echo 换成8
SETX /M JAVA_HOME %%JDK8_HOME%%
SETX /M JAVA %%JDK8_JDK_JRE%%
goto end
)

if %aim% equ 9 (
echo 换成9
SETX /M JAVA_HOME %%JDK9_HOME%%
SETX /M JAVA %%JDK9_JDK_JRE%%
goto end
)

if %aim% equ 10 (
echo 换成10
SETX /M JAVA_HOME %%JDK10_HOME%%
SETX /M JAVA %%JDK10_JDK_JRE%%
goto end
)

if %aim% equ 11 (
echo 换成11
SETX /M JAVA_HOME %%JDK11_HOME%%
SETX /M JAVA %%JDK11_JDK_JRE%%
goto end
)

if %aim% equ 12 (
echo 换成12
SETX /M JAVA_HOME %%JDK12_HOME%%
SETX /M JAVA %%JDK12_JDK_JRE%%
goto end
)

if %aim% equ 13 (
echo 换成10
SETX /M JAVA_HOME %%JDK13_HOME%%
SETX /M JAVA %%JDK13_JDK_JRE%%
goto end
)

if %aim% equ 14 (
echo 换成10
SETX /M JAVA_HOME %%JDK14_HOME%%
SETX /M JAVA %%JDK14_JDK_JRE%%
goto end
)

if %aim% equ 15 (
echo 换成10
SETX /M JAVA_HOME %%JDK15_HOME%%
SETX /M JAVA %%JDK15_JDK_JRE%%
goto end
)


:end
rem pause

  以后切换版本就只须点击bat(我后来觉得vbs好一些)即可,真是方便呐。如果使用频繁还可创建快捷方式,利用win+R来快速切换,哈,究极方便。