标题: [系统相关] 求救-bat如何自动设置java系统环境变量并立即生效 [打印本页]
作者: acer9995 时间: 2021-11-30 17:32 标题: 求救-bat如何自动设置java系统环境变量并立即生效
bat如何
1.自动设置java系统环境变量
2.并立即生效
环境是windows server 2016 standart
我用的以下命令- wmic ENVIRONMENT where "name='JAVA_HOME'" delete 2>&1 >nul
- wmic ENVIRONMENT where "name='CLASSPATH'" delete 2>&1 >nul
- wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%jh%"
- wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%Path%"
- 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窗口,才能生效
谢谢
作者: Batcher 时间: 2021-11-30 17:58
回复 1# acer9995
你是通过什么方法来验证新的环境变量是否生效呢?
作者: 窄口牛 时间: 2021-11-30 20:38
自动设置貌似还做不到,因为每一个版本的安装位置并不是完全一样,并且注册表里也没有相关的位置可查,这也许就是为什么,它自己没有提供相关自动设置的原因?
作者: acer9995 时间: 2021-11-30 20:54
回复 2# Batcher
我是新开一个cmd窗口 输入 java -version ,提示java 不是内部命令
作者: xczxczxcz 时间: 2021-11-30 21:33
回复 4# acer9995
没用过 Server 系统 下面这个试下: 右键 管理员运行 ,若成功则在 命令行窗口 输入 :javac- $REG = [Ordered]@{
- Path1 = "HKLM:\SOFTWARE\JavaSoft";
- Path2 = "HKLM:\SOFTWARE\WOW6432Node\JavaSoft";
- Path3 = "HKCU:\SOFTWARE\JavaSoft";
- Path4 = "HKCU:\SOFTWARE\WOW6432Node\JavaSoft";
- };
-
- $Arr = @(
- $REG.Values | Foreach {
- if (Test-Path $_) { LS $_ -rec | ? { if ( (gp registry::$_).JavaHome ) { $_ } } };
- }
- );
-
- $JAVA_HOME = (GP registry::$($Arr[0].Name)).JavaHome; #设置要添加的环境变量路径
- $ClassPath = "%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar";
-
- $directory = Split-Path $JAVA_HOME -Leaf;
- $REF = $env:Path -Split ';' -NotMatch $directory -Join ';';
- $Path = $REF + ';' + "%JAVA_HOME%\bin;";
-
- Write-Host '$JAVA_HOME='$JAVA_HOME
- Write-Host '$ClassPath='$ClassPath
-
- [Environment]::SetEnvironmentVariable('JAVA_HOME', $JAVA_HOME, 'Machine');
- [Environment]::SetEnvironmentVariable('ClassPath', $ClassPath, 'Machine');
- [Environment]::SetEnvironmentVariable('Path', $Path, 'Machine');
-
- pause;
复制代码
作者: acer9995 时间: 2021-11-30 21:53
谢谢
提示:
:\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
作者: aloha20200628 时间: 2021-12-1 10:57
请查看另一个系统命令setx,专用于设置系统变量...可网搜其具体用法示例...
https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/setx
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |