bat / cmd文件设置java主路径

时间:2014-03-31 22:09:55

标签: windows batch-file cmd

我想在不同的java版本之间轻松切换,因此想要通过运行bat / cmd文件在环境变量中设置系统级的主路径和路径。

我的.bat文件如下所示:

@echo off  
echo Setting JAVA_HOME  
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0
echo JAVA_HOME: %JAVA_HOME% 
echo setting PATH
set PATH=%JAVA_HOME%\bin;%PATH% 
echo PATH: %PATH%  

如果我在同一个命令提示符中键入echo%JAVA_HOME%,那么它会打印到jdk1.8.0的路径,但如果我打开一个新的命令提示符则不会,如果我查看环境变量,它也不会列在那里。

编辑:我也试过

@echo off  
echo Setting JAVA_HOME  
setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0"
echo JAVA_HOME: %JAVA_HOME% 
echo setting PATH
setx PATH "%JAVA_HOME%\bin;%PATH%"
echo PATH: %PATH%  
echo Display java version  
java -version  

这适用于用户级别,但不适用于系统级别。

2 个答案:

答案 0 :(得分:7)

通过以下方式解决:

@echo off  
echo Setting JAVA_HOME  
setx -m JAVA_HOME "C:\Program Files\Java\jdk1.8.0"
echo JAVA_HOME: %JAVA_HOME% 
echo setting PATH
setx -m PATH "%Path%;%JAVA_HOME%\bin"
echo PATH: %PATH%  
echo Display java version  
java -version  
pause

答案 1 :(得分:1)

请注意,setx没有=符号。如果你有

setx abc=def

它会将变量abc = def设置为空。如果您希望将abc设置为def,则语法为

setx abc def

当您使用set运行批处理文件时,您看到的是正确的行为。全局设置环境变量

@echo off  
echo Setting JAVA_HOME  
setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0"
echo JAVA_HOME: %JAVA_HOME% 
echo setting PATH
setx PATH %JAVA_HOME%\bin;%PATH% 
echo PATH: %PATH%

请注意,当您使用setx

时,变量后面没有=