人懒,就得“多干活”!  正常安装JDK 的话,它会修改系统的path 变量,加入自己的调用路径(jre)

 

JAVA 环境一键部署 shll 脚本 java环境一键配置_Java

 

这样,我们刚安装好后,就可直接调用java –verbose 查看jre 安装的目录了。

(如果你是批处理安装的,那么当前是无法调用的,可另开新窗口就可调用了)

主要代码,就三行( 默认都是用户变量,两个%转义,还有^输出转义)

 

setx CLASSPATH ".;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar"
setx PATH ";%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin"
setx JAVA_HOME " C:\ProgramFiles\Java\jdk1.8.0_111"

 

代码复制到文本文件,另存为 XXX.bat ,然后把jdk安装文件拖在XXX.bat上即可

JAVA 环境一键部署 shll 脚本 java环境一键配置_java_02

 

 

 

写入的都是 相对路径

JAVA 环境一键部署 shll 脚本 java环境一键配置_JAVA 环境一键部署 shll 脚本_03

 

 

-----------------完整 批处理 复制以下-----

@Echo Off

title  正在为您安装 jdk...

color 0a

mode con cols=50 lines=20

echo 正在为您安装 jdk...

 

rem 从拖入的文件获取路径并执行,等待安装结束

start /w %1 /s

 

rem 用java -verbose 获取JAVA安装路径

for /f "delims=" %%a in ('%programdata%\Oracle\Java\javapath\java -verbose') do (

set Java_path=%%a

)

 

rem 分别获取安装盘符,与目录再拼接成绝对路径

for /f "tokens=1,2 delims=':'" %%i in ("%Java_path%") do (

set str1=%%i

set str2=%%j

)

set Java_path=%str1:~-1%:%str2:~0,-1%

 

rem 截取JAVA安装的目录

set Java_path=%Java_path:~0,-11%

 

rem 将字符串中的jre换成jdk

set Java_path=%Java_path:Java\jre=Java\jdk%

echo %Java_path%

 

rem 以脚本变量 替换用户或系统中的变量,可以写入引用路径

set JAVA_HOME =""

rem 设置 javac 的用户变量,如果想成系统变量请加 -m

setx CLASSPATH ".;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar"

setx PATH ";%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin"

setx JAVA_HOME "%Java_path%"

 

cls

Echo. --------安装结束-----------

echo 如果 输入javac 没有反映,请重启下机器

pause

-----------------完整 批处理 复制以上-----

 

如果我想在 path 的基础上 加入 对tomcat目录里的php的引用,怎么加?

可以在用户

变量名 上写 TOMCAT_HOME

变量值 上写 C:\apache-tomcat-7.0.40

Path 里只要写 setx path "%path%;%TOMCAT_HOME%\php" 就可以引用了

 

JAVA 环境一键部署 shll 脚本 java环境一键配置_JAVA_04

 

 

setx /k /?  有一条 /K     regpath         指定变量是基于注册表项的信息而设置的。

 

这条是说,设置一条基于注册表信息的变量,就是读取注册表的结果为设置环境变量的值。

 如下图

JAVA 环境一键部署 shll 脚本 java环境一键配置_JAVA_05

 

PS 一些常识

上面可以看到用户环境变量 与 系统环境变量 中都有path ,

 

 

从截图上可以看出,查询的过程是path 的结果是 系统变量加用户,先查系统再查用户

 

我们修改用户变量时,会修改注册表的两个地方

[HKEY_CURRENT_USER\Environment]

[HKEY_USERS\S-1-5-21-xxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-500\Environment](500是管理员)

JAVA 环境一键部署 shll 脚本 java环境一键配置_JAVA 环境一键部署 shll 脚本_06

第一个指当前用户,就是当前安装jdk 的用户

第二个是Public 用户,公共用的,有些用户安装的东西 for everyone 的那种。

所以上面的那3 行代码,就可以写成

 

reg add HKCU\Environment /v CLASSPATH /tREG_EXPAND_SZ /d ".;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar" /f
 
reg add HKCU\Environment /v PATH /t REG_EXPAND_SZ /d ";%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;"/f
 
reg add HKCU\Environment /v JAVA_HOME /tREG_SZ /d " C:\Program Files\Java\jdk1.8.0_111" /f
 
---------------------------------------------
 
reg query HKEY_CURRENT_USER\Environment /v JAVA_HOME   //查看
 
reg delete HKCU\Environment /v JAVA_HOME /f     //删除
 
 ------------------------------------------