标题: [系统相关] 求教大佬!使用wmic设置java环境变量无法及时生效 [打印本页]
作者: y54king 时间: 2019-3-30 15:18 标题: 求教大佬!使用wmic设置java环境变量无法及时生效
由于单位两个系统是分别使用java 1.4和java1.6的,导致如果JRE是1.4的,1.6的系统就出现问题,反之亦然,因此想写个bat切换JAVA的系统变量,实现两个系统随用随切换,对java环境变量的初始化我是使用wmic写的,代码如下- @echo off
- echo 开始自动建立JAVA变量,请确认该文件在JAVA根目录下
- pause
-
- echo 开始执行
-
- set home=%~dp0
- set "home=%home:~,-1%"
- echo %home%
- echo 删除JAVA_HOME
- wmic ENVIRONMENT where "name='JAVA_HOME'" delete
- echo 将当前路径赋值给JAVA_HOME
- wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%home%"
- wmic ENVIRONMENT where "name='JAVA_HOME' and username='<system>'" set VariableValue="%home%"
- echo 修改Path
- wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%Path%"
- echo 删除classpath
- wmic ENVIRONMENT where "name='CLASSPATH'" delete
- echo 修改classpath
- wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar"
- wmic ENVIRONMENT where "name='CLASSPATH' and username='<system>'" set VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar"
-
- echo ---------------------------------------------------------------------
-
- echo 初始化完毕
- pause
复制代码
以上代码在以管理员身份运行后,关掉运行窗口,再使用cmd,运行java -version无效,提示java不是系统命令,在环境变量里查看,确实已经修改了,什么都不修改,点击确定保存,或者注销系统,再使用cmd 运行java -version,就正常了,系统使用的是win7 32位(单位的系统太老,且不能在win10下运行)
,wmic网上查了一下是应该是即时生效的,但是我这里却无法及时生效,请问各位大佬为什么?需要修改哪里才能让程序运行后不用注销立即生效?谢谢。
作者: yhcfsr 时间: 2019-3-30 15:39
本帖最后由 yhcfsr 于 2019-3-30 15:48 编辑
环境变量设置用 setx 不是更方便吗?- setx JAVA_HOME "%JAVA_HOME%;d:\test"
复制代码
老实说,这种问题我之前遇到过一次,设置环境变量,然后在powershell里调用没有生效,不过CMD是没有问题的
然后重启电脑powershell就可以调用了,只遇到一次,正常情况是即时生效的,而且之后也没有再遇到这样的问题了.有点莫名其妙
作者: y54king 时间: 2019-4-1 14:27
回复 2# yhcfsr
后来是改用setx实现了,但是很纠结这个不能即时生效的问题。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |