javaJDK环境变量一键配置批处理+vbs实现
复制以下代码,保存到记事本中然后另存为ANSI编码格式,后缀改为.bat。然后把脚本放到JDK目录中运行就OK了。
下面是运行结果:
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) >getadmin.vbs"
echo UAC.ShellExecute "%~s0", "%cd%", "", "runas", 1 >>getadmin.vbs"
getadmin.vbs"
exit /B
:gotAdmin
set cd=%*
cd /d %cd%
title JAVA环境变量一键配置脚本
if exist getadmin.vbs ( del getadmin.vbs )
echo.
echo.请把此脚本放到JDK目录下运行!
echo. 作者QQ:1825948037
echo.
pause
echo.
call :creatVBS
cscript /nologo JavaEnvironment.vbs
del JavaEnvironment.vbs
echo JAVA环境变量设置成功!
>nul pause&exit
:creatVBS
(
echo.JAVA_HOME=createobject^("Scripting.FileSystemObject"^).GetFile^(Wscript.ScriptFullName^).ParentFolder.Path
echo.CLASSPATH=".;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar"
echo.Path="%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin"
echo.
echo.set WShell = CreateObject^("Wscript.Shell"^)
echo.'读取系统Path环境变量
echo.systemPath = WShell.RegRead^("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path"^)
echo.'判断系统Path环境变量,中需要添加哪些路径,重复的不会添加,返回要添加的路径数组
echo.Dim finallPath^(^)
echo.if pathUpdate^(split^(systemPath, ";"^), split^(Path, ";"^), finallPath^) ^<^> -1 then
echo. '将要添加的路径连接到系统环境变量的后面
echo. for i = 0 to UBound^(finallPath^)
echo. systemPath = systemPath + iif^(right^(systemPath,1^)=";","",";"^) + finallPath^(i^)
echo. next
echo. '更新系统Path环境变量注册表
echo. WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path",systemPath,"REG_EXPAND_SZ"
echo.end if
echo.'添加CLASSPATH系统环境变量
echo.WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\CLASSPATH",".;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar","REG_SZ"
echo.'添加JAVA_HOME系统环境变量
echo.WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\JAVA_HOME",JAVA_HOME,"REG_SZ"
echo.
echo.WScript.Echo "=============JAVA_HOME============="
echo.WScript.Echo JAVA_HOME
echo.WScript.Echo ""
echo.WScript.Echo "=============CLASSPATH============="
echo.WScript.Echo CLASSPATH
echo.WScript.Echo ""
echo.WScript.Echo "===============Path================"
echo.WScript.Echo systemPath
echo.WScript.Echo ""
echo.
echo.wscript.quit
echo.
echo.'判断系统Path环境变量,中需要添加哪些路径
echo.function pathUpdate^(systemPathArr, newPathArr, finallPath^)
echo. index = -1
echo. for i = 0 to UBound^(newPathArr^)
echo. flag = true
echo. for j = 0 to UBound^(systemPathArr^)
echo. if LCase^(newPathArr^(i^)^) = LCase^(systemPathArr^(j^)^) then
echo. flag = false
echo. exit for
echo. end if
echo. next
echo. if flag then
echo. index = index + 1
echo. ReDim Preserve finallPath^(index^)
echo. finallPath^(index^) = newPathArr^(i^)
echo. end if
echo. next
echo. pathUpdate = index
echo.end function
echo.
echo.function iif^(expression,returntrue,returnfalse^)
echo. if expression=0 then
echo. iif=returnfalse
echo. else
echo. iif=returntrue
echo. end if
echo.end function
)>JavaEnvironment.vbs
goto :EOF