[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 求救-bat如何自动设置java系统环境变量并立即生效

bat如何
1.自动设置java系统环境变量
2.并立即生效

环境是windows server 2016 standart
我用的以下命令
  1. wmic ENVIRONMENT where "name='JAVA_HOME'" delete 2>&1 >nul
  2. wmic ENVIRONMENT where "name='CLASSPATH'" delete 2>&1 >nul
  3. wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%jh%"
  4. wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%Path%"
  5. wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar"
复制代码
出现问题:
1.不能立即生效
2.手动点击到环境变量界面确认,再次打开cmd窗口,才能生效




谢谢

请查看另一个系统命令setx,专用于设置系统变量...可网搜其具体用法示例...
https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/setx

TOP

谢谢  
提示:
:\Users\Administrator\Desktop>锘?REG = [Ordered]@{
'锘?REG' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Users\Administrator\Desktop>Path1 = "HKLM:\SOFTWARE\JavaSoft";
'Path1' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Users\Administrator\Desktop>Path2 = "HKLM:\SOFTWARE\WOW6432Node\JavaSoft";
'Path2' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Users\Administrator\Desktop>Path3 = "HKCU:\SOFTWARE\JavaSoft";
'Path3' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Users\Administrator\Desktop>Path4 = "HKCU:\SOFTWARE\WOW6432Node\JavaSoft";
'Path4' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Users\Administrator\Desktop>};
'}' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Users\Administrator\Desktop>pause
请按任意键继续. . .





我的需求:
1.设置JAVA_HOME 为 C:\Program Files\Java
2.设置系统环境变量 CLASSPATH 为.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar
3. 设置ERLANG_HOME 为C:\Program Files\erl-23.0
4。把 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ERLANG_HOME%\bin 添加到全局环境PATHZ中,且多次执行不要重复。

我的初步代码如下,多次执行后,有重复的,另外JAVA还不生效,

reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v JAVA_HOME /t REG_SZ /d "%jdk_path%" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v CLASSPATH /t REG_SZ /d ".;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar" /f
:: 配置系统环境变量,包括c:\dll
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ERLANG_HOME%\bin;%Path%" /f
::设置rabbitmq erlang环境变量
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v ERLANG_HOME /t REG_SZ /d "C:\Program Files\erl-23.0" /f

TOP

回复 4# acer9995


    没用过 Server 系统 下面这个试下: 右键 管理员运行 ,若成功则在 命令行窗口 输入 :javac
  1. $REG = [Ordered]@{
  2. Path1 = "HKLM:\SOFTWARE\JavaSoft";
  3. Path2 = "HKLM:\SOFTWARE\WOW6432Node\JavaSoft";
  4. Path3 = "HKCU:\SOFTWARE\JavaSoft";
  5. Path4 = "HKCU:\SOFTWARE\WOW6432Node\JavaSoft";
  6. };
  7. $Arr = @(
  8. $REG.Values | Foreach {
  9. if (Test-Path $_) { LS $_ -rec | ? { if ( (gp registry::$_).JavaHome ) { $_ } } };
  10. }
  11. );
  12. $JAVA_HOME = (GP registry::$($Arr[0].Name)).JavaHome; #设置要添加的环境变量路径
  13. $ClassPath = "%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar";
  14. $directory = Split-Path $JAVA_HOME -Leaf;
  15. $REF = $env:Path -Split ';' -NotMatch $directory -Join ';';
  16. $Path = $REF + ';' + "%JAVA_HOME%\bin;";
  17. Write-Host '$JAVA_HOME='$JAVA_HOME
  18. Write-Host '$ClassPath='$ClassPath
  19. [Environment]::SetEnvironmentVariable('JAVA_HOME', $JAVA_HOME, 'Machine');
  20. [Environment]::SetEnvironmentVariable('ClassPath', $ClassPath, 'Machine');
  21. [Environment]::SetEnvironmentVariable('Path', $Path, 'Machine');
  22. pause;
复制代码
QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

回复 2# Batcher


    我是新开一个cmd窗口 输入 java -version ,提示java 不是内部命令

TOP

自动设置貌似还做不到,因为每一个版本的安装位置并不是完全一样,并且注册表里也没有相关的位置可查,这也许就是为什么,它自己没有提供相关自动设置的原因?

TOP

回复 1# acer9995


    你是通过什么方法来验证新的环境变量是否生效呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表