一、前言
系统安装了多个版本的jdk,切换起来很是不方便,需要改环境变量。
二、方法
来源GitHub:Pear1y
2.1 思路
使用 sw.exe 调用 bat 脚本实现 jdk 版本切换。直接修改系统环境变量,使修改永久生效
2.2 步骤
- 配置多java系统环境
说明:这里JAVA_HOME的值为%JAVA8_HOME%,即默认为JAVA8的jdk
- path
- 脚本
sw.bat:
@echo off
set switch=%1%
rem echo %switch%
if %switch% == 8 (
echo [*]Switch to Java8.
setx JAVA_HOME "%%JAVA8_HOME%%" /m
) else (
if %switch% == 17 (
echo [*]Switch to Java17.
setx JAVA_HOME "%%JAVA17_HOME%%" /m
))
rem pause
sw.c
#include "stdio.h"
#include "stdlib.h"
void main(int argc, char *argv[])
{
int ver = atoi(argv[1]);
if (argc == 2) {
char cmd[64];
switch(ver) {
case 8:
case 17:
sprintf(cmd, "C:/Java/JavaSwitch/sw.bat %d", ver);
system(cmd);
default:
printf("[*] Only Support 8/17\n");
return;
}
} else if (argc >= 2) {
printf("[-] Too many arguments.\n[*] see: sw ?");
} else {
printf("[*] Please input Java_Version...\n[*] eg:sw 8/17\n");
}
}
编译:
gcc sw.c -o sw.exe
注意:使用命令提示符界面编译,需要安装MinGW。见文章《gcc不是内部或外部命令,也不是可运行的程序或批处理文件》
编译生成sw.exe文件,将其复制到C:\Windows\System32\下即可。
注意,这里的2个脚本需要放在无空格路径,我直接放在C盘
其次是脚本中的路径也要进行相应 的更改。
2.3 使用
先查看现在的版本
切换(使用管理员权限)
切换后,关闭dos窗口生效,然后使用普通权限的命令提示符查看切换成功与否
至此,确认切换成功。