标题: [系统相关] 想写一个批处理来实现配置java环境变量,求大神帮忙 [打印本页]
作者: lvpeichuan 时间: 2018-1-2 18:11 标题: 想写一个批处理来实现配置java环境变量,求大神帮忙
软件要运行需要配置一下环境变量
1、创建新的环境变量JAVA_HOME,值为:C:\Program Files\Java\jre1.8.0_144(这个地方能弹出一个输入对话框复制java_home的路径,因为32位系统跟64位系统的安装路径名称不一样)
2、向环境变量path中追加值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(后面有;分号)
3、创建新的环境变量CLASSPATH,值为: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意 全面有一个.;)
作者: ivor 时间: 2018-1-2 20:31
复制代码
作者: ai20110304 时间: 2018-1-2 22:18
用wmic永久添加
作者: codegay 时间: 2018-1-2 23:25
wmic ENVIRONMENT
http://www.bathome.net/thread-8985-1-1.html
作者: codegay 时间: 2018-1-2 23:41
采用修改注册表的方式的添加的话,可以写入以下注册表中。
HKEY_CURRENT_USER\Environment
作者: lvpeichuan 时间: 2018-1-2 23:44
回复 5# codegay - @echo off
- set "JAVA_HOME="
- set /p "JAVA_HOME=Please input value of JAVA_HOME: "
- if not exist "%JAVA_HOME%" (
- echo Not find "%JAVA_HOME%"
- goto :end
- )
- REM For permanent
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /t REG_SZ /d "%JAVA_HOME%" /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH /t REG_SZ /d "%JAVA_HOME%;%PATH%" /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v CLASSPATH /t REG_SZ /d ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar" /f
- REM For current CMD
- set "PATH=%JAVA_HOME%;%PATH%"
- set "CLASS_PATH=%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib"
- REM Verify
- echo,
- echo,PATH=%JAVA_HOME%;%PATH%
- echo,
- echo,CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
- echo,
- :end
- pause
复制代码
这样可对
作者: lvpeichuan 时间: 2018-1-2 23:56
回复 5# codegay
但是我这样写 执行之后却发现 CLASSPATH变量值为:.;C:\Program Files\Java\jre7\lib;C:\Program Files\Java\jre7\lib\tools.jar 而不是我需要的.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
而Path 虽然也有追加了 但是追加的不是%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 而是变成了C:\Program Files\Java\jre7; 安装路径
我的程序无法运行了 懵逼了 对这个不大懂写不来了
作者: zaqmlp 时间: 2018-1-4 11:26
- <!-- :
- @echo off
- set "c=%~1"
- set "jh=%~2"
- if defined c set n=1
- if defined jh set /a n+=1
- if "%n%" neq "2" (for /f "tokens=1,2 delims=|" %%a in ('mshta "%~f0"') do (set "c=%%a"&set "jh=%%b"))
- if not defined jh echo;未指定java_home目录&goto end
- if not exist "%jh%\bin\java.exe" echo;java_home目录错误&goto end
- echo;"%c%"|findstr "^\"[123]\"$">nul||(echo;参数错误&goto end)
- echo;JAVA_HOME="%jh%"
- goto :%c%
- :1
- 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"
- goto end
- :2
- set "regpath=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
- reg add "%regpath%" /v JAVA_HOME /t REG_SZ /d "%jh%" /f
- reg add "%regpath%" /v Path /t REG_EXPAND_SZ /d "%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%Path%" /f
- reg add "%regpath%" /v CLASSPATH /t REG_EXPAND_SZ /d ".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar" /f
- goto end
- :3
- if not exist "%SystemRoot%\System32\setx.exe" echo;setx不可用&goto end
- set "pathtmp=%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%Path%"
- if "%pathtmp:~1023%" neq "" echo;path的字符数超过1024,setx无法正常修改&goto end
- setx JAVA_HOME "%jh%" /M
- setx Path "%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%Path%" /M
- setx CLASSPATH ".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar" /M
- :end
- pause&exit
- -->
- <head>
- <title>设置JAVA环境变量</title>
- <HTA:APPLICATION SHOWINTASKBAR="no" MAXIMIZEBUTTON="no" SCROLL="no" />
- <script>
- window.resizeTo(400, 90);
- function getfolder(){
- var stdout=new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1)
- var Shell = new ActiveXObject("Shell.Application");
- var Folder = Shell.BrowseForFolder(0, "选择文件夹", 64, 17);
- var obj = document.getElementById("choice");
- var index = obj.selectedIndex;
- var val = obj.options[index].value;
- stdout.Write(val+"|"+(Folder==null?"":Folder.self.Path));
- close();
- }
- </script>
- </head>
- 设置方式:
- <select id="choice">
- <option value="1" selected="selected">wmic命令</option>
- <option value="2">注册表</option>
- <option value="3">setx命令</option>
- </select>
- <input type="button" value="选择JAVA_HOME的目录" onclick="getfolder();">
复制代码
作者: lvpeichuan 时间: 2018-1-6 15:51
回复 8# zaqmlp
大神 能不能设置用一个对话框 复制粘贴进去 用选择的感觉好麻烦的说
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |