rem 为了简化以上操作,我写了一个批处理工具一键实现环境变量配置 @ echo off chcp 65001 > nul setlocal enabledelayedexpansion rem 获取当前批处理文件所在目录 set "BASE_DIR=%~dp0" rem 标准化路径格式(去除末尾反斜杠) if "%BASE_DIR:~-1%"=="\" set "BASE_DIR=%BASE_DIR:~0,-1%" rem 处理路径中的特殊字符 set "BASE_DIR=%BASE_DIR:"=%" set "BASE_DIR=%BASE_DIR: =_%" rem 设置用户级环境变量 echo 正在设置用户级环境变量 JAVA_HOME = %BASE_DIR% setx JAVA_HOME "%BASE_DIR%" >nul rem 获取当前用户PATH(兼容无PATH的情况) for /f "tokens=2* delims= " %%a in ('reg query "HKCU\Environment" /v PATH 2^>nul') do set "USER_PATH=%%b" if not defined USER_PATH set "USER_PATH=" rem 定义需要追加的路径(保留变量引用形式) set "PATH_ENTRIES=%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin" rem 分割现有PATH为数组 set i=0 if defined USER_PATH ( for %%A in ("%USER_PATH:;=","%") do ( set /a i+=1 set "PATH_ARRAY[!i!]=%%~A" ) ) rem 检查并追加新路径 for %%A in (%PATH_ENTRIES%) do ( rem 检查是否已存在 set "FOUND=" for /l %%i in (1,1,%i%) do ( if "!PATH_ARRAY[%%i]!"=="%%A" set "FOUND=1" ) if not defined FOUND ( if defined USER_PATH ( set "USER_PATH=!USER_PATH!;%%A" ) else ( set "USER_PATH=%%A" ) echo 已追加路径: %%A ) else ( echo 路径已存在: %%A ) ) rem 更新用户PATH到注册表 if defined USER_PATH ( rem 保留变量引用形式 reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "!USER_PATH!" /f >nul echo 用户PATH已更新 ) rem ---------- 设置 CLASSPATH 环境变量 ---------- rem CLASSPATH 值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar rem 注意:保留 %JAVA_HOME% 变量引用形式,使用双 百分号 转义 set "CLASSPATH_VALUE=.;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar" reg add "HKCU\Environment" /v CLASSPATH /t REG_EXPAND_SZ /d "!CLASSPATH_VALUE!" /f >nul echo 已设置用户级 CLASSPATH = !CLASSPATH_VALUE! rem ------------------------------------------------- endlocal echo 操作完成!请重新启动命令提示符 echo 当前配置: echo JAVA_HOME = %JAVA_HOME% echo CLASSPATH = .;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar pause
JDK 8免安装版真香!解压+自动配环境,比安装版更省心
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
全部评论