文档章节

Window下利用BAT批处理自动配置JDK环境变量

 黄昏日不落
发布于 2013/08/16 23:56
字数 554
阅读 7715
收藏 11

Windows系统的环境变量都是保存在注册表里的,我们可以通过命令行或者是批处理来修改环境变量。CMD命令set可以直接修改环境变量,但那是临时的(系统重启或注销后就无效了),所以直接修改注册表才是"一劳永逸"的方法。

Winows XP系统环境变量注册表项为:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Winows XP系统当前用户环境变量注册表项为:

HKEY_CURRENT_USER\Environment

我们可以利用reg命令来修改注册表(更多关于reg命令,请自行Google)

以下语句的作用是增加Java_Home环境变量(变量的值为批处理所在路径),并将Java_Home\bin添加到Path中。所以,将这两条条语句写成批处理后,只要把批处理文件放置到JDK的目录下,即可一次性配置好JDK环境变量(不仅是JDK的环境变量,只要稍作修改亦可用于MySQL、Tomcat、Maven等的环境变量设置)

<!-- lang: shell -->
@reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Java_Home /t reg_sz /d "%cd%" /f
@reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path /t reg_expand_sz /d ".;%path%;%%Java_Home%%\bin" /f

使用方法:将上面的代码保存为xx.bat,然后放置到JDK有Bin文件夹的目录下(不管是不是安装版都行),双击即可完成环境变量的配置。

Win7及Win8系统的注册表项稍有不同,而且需要多加一条语句,但原理是一样的,稍后再补充(等我遇到win7或win8的机子测试一下再补充,前段时间就给一台win7的机子配过JDK环境,但当时没有记录下来,所以正确的注册表项我暂时不清楚)。 Linux下也可以有类似的脚本,但我学艺不精,不敢轻易放出,我就曾因为JDK环境变量配置有误,结果Ubuntu的桌面环境都进不了,最后只好在tty中把桌面救回来了,所以建议新手还是多Google,等有把握了再自己手动配置JDK环境变量。

© 著作权归作者所有

粉丝 0
博文 11
码字总数 2912
作品 0
成都
程序员
私信 提问
加载中

评论(8)

wqli
wqli
在win7下修改注册表需要使用Administrator权限,其他设置好像与XP一样
JacarriChan
JacarriChan

引用来自“黄昏日不落”的评论

引用来自“JacarriChan”的评论

引用来自“黄昏日不落”的评论

引用来自“JacarriChan”的评论

把设置好的注册表可以直接导出reg文件,以后要用的时候双击运行就行了。

直接导出的reg文件貌似不能自动识别不同路径的JDK吧,比如说换了台计算机了怎么办?我现在用的是Linux,Windows注册表这块不是很了解,还望多指教!

reg文件相当于一个备份。肯定不能自动识别啊、它又没有自动扫描硬盘里面的文件。 相同系统且jdk路径一样,执行reg文件就ok,别的就得配置了,因为你也说了注册表长的都不同。 我觉得Linux好些,基本都是在/etc/profile追加几行配置。

哦,原来是这样的啊。其实我写这个批处理的原因是我比较懒,给别人帮忙配JDK环境的时候不愿意重复这些无聊的工作,而且我也不愿意强迫别人的JDK路径同我的一样,同时我也不希望别人计算机里出现多余的环境变量。以前我用的是nLite定制过的WinXP,好些路径(包括Program Files等)都同一般情况下的不一致,这种情况下直接导入他人备份的reg文件我觉得不太合适。确实在环境变量设置方面还是Linux相对统一一些,有机会我再往批处理里添加自动区别Windows系统版本的语句,这样就方便多了。

reg文件可以修改的。
黄昏日不落 博主

引用来自“JacarriChan”的评论

引用来自“黄昏日不落”的评论

引用来自“JacarriChan”的评论

把设置好的注册表可以直接导出reg文件,以后要用的时候双击运行就行了。

直接导出的reg文件貌似不能自动识别不同路径的JDK吧,比如说换了台计算机了怎么办?我现在用的是Linux,Windows注册表这块不是很了解,还望多指教!

reg文件相当于一个备份。肯定不能自动识别啊、它又没有自动扫描硬盘里面的文件。 相同系统且jdk路径一样,执行reg文件就ok,别的就得配置了,因为你也说了注册表长的都不同。 我觉得Linux好些,基本都是在/etc/profile追加几行配置。

哦,原来是这样的啊。其实我写这个批处理的原因是我比较懒,给别人帮忙配JDK环境的时候不愿意重复这些无聊的工作,而且我也不愿意强迫别人的JDK路径同我的一样,同时我也不希望别人计算机里出现多余的环境变量。以前我用的是nLite定制过的WinXP,好些路径(包括Program Files等)都同一般情况下的不一致,这种情况下直接导入他人备份的reg文件我觉得不太合适。确实在环境变量设置方面还是Linux相对统一一些,有机会我再往批处理里添加自动区别Windows系统版本的语句,这样就方便多了。
JacarriChan
JacarriChan

引用来自“黄昏日不落”的评论

引用来自“JacarriChan”的评论

把设置好的注册表可以直接导出reg文件,以后要用的时候双击运行就行了。

直接导出的reg文件貌似不能自动识别不同路径的JDK吧,比如说换了台计算机了怎么办?我现在用的是Linux,Windows注册表这块不是很了解,还望多指教!

reg文件相当于一个备份。肯定不能自动识别啊、它又没有自动扫描硬盘里面的文件。 相同系统且jdk路径一样,执行reg文件就ok,别的就得配置了,因为你也说了注册表长的都不同。 我觉得Linux好些,基本都是在/etc/profile追加几行配置。
黄昏日不落 博主

引用来自“JacarriChan”的评论

把设置好的注册表可以直接导出reg文件,以后要用的时候双击运行就行了。

直接导出的reg文件貌似不能自动识别不同路径的JDK吧,比如说换了台计算机了怎么办?我现在用的是Linux,Windows注册表这块不是很了解,还望多指教!
黄昏日不落 博主

引用来自“Neoman”的评论

不错

呵呵,过奖了,雕虫小技而已。
JacarriChan
JacarriChan
把设置好的注册表可以直接导出reg文件,以后要用的时候双击运行就行了。
Neoman
Neoman
不错
Java配置环境变量及其意义

在学习Java的过程中,涉及到多个环境变量(environment variable)的概念,如PATH。正确地配置这些环境变量是能够顺利学习、开发的前提。而经常出现的问题是:有的学习者能够按照提示一步一步...

iBazinga
2016/10/29
83
1
直接启动tomcat时为tomcat指定JDK 而不是读取环境变量中的配置

第一种: 在windows环境下以批处理文件方式启动tomcat,只要运行<CATALINAHOME>/bin/startup.bat这个文件,就可以启动Tomcat。在启动时,startup.bat会调用catalina.bat文件,而catalina.ba...

JAVA_NINA
2016/10/26
59
0
java环境配置--转载

开发工具获取 开发工具包JDK:可到ORACLE公司官方网站(http://www.oracle.com/)下载。官网的网速可能会有些慢,也可以从其他途径下载JDK。 Java Web应用的Web服务器Tomcat:Tomcat官网(http...

我是小个子啊
2016/07/20
33
0
将解压版的Tomcat作为系统服务启动

下面是如何有关于Tomcat服务的设置: 一、注册为Windows系统服务: 运行cmd打开控制台,进入Tomat目录/bin文件夹,会看到service.bat输入如下命令运行。 service install 服务名称 这一句是将...

HHT15927087748
2017/12/13
0
0
tomcat启动startup.bat一闪而过

遇到很多次运行startup.bat后,一个窗口一闪而过的问题,但是从来没去纠正怎样修改配置才是正确的,现在从网上查阅的资料整理如下: tomcat在启动时,会读取环境变量的信息,需要一个CATALIN...

肖歌
2016/02/22
174
0

没有更多内容

加载失败,请刷新页面

加载更多

linux查询日志命令总结

【背景】 排查线上环境问题,少不了去线上查日志。而使用什么命令,能快速准确地查到我们需要查找地日志信息,也是我们需要掌握的一项技能。 【命令】 Linux查看命令有多种:tail,head,cat...

chen-chen-chen
15分钟前
1
0
net/http 接收文件

代码展示,如何使用golang 自带net/http,将Form表单中提交上来的文件,指定位置保存。 ReadHtmlFile OutHtml(html网页,表单测试代码使用) SaveFile (处理提交文件) package mainimport...

听夜深窗外风
19分钟前
1
0
c++ 强制类型转换

强制类型转换 p545

天王盖地虎626
22分钟前
2
0
再读Golang中的异常处理

一起重温Golang中的异常处理啊😸 1.Golang语言中没有其他语言中的try...catch...语句来捕获异常和异常恢复 2.在Golang中我们通常会使用panic关键字来抛出异常,在defer中使用recover来捕获...

Andy-xu
41分钟前
7
0
TiDB 最佳实践系列(三)乐观锁事务

作者:Shirly TiDB 最佳实践系列是面向广大 TiDB 用户的系列教程,旨在深入浅出介绍 TiDB 的架构与原理,帮助用户在生产环境中最大限度发挥 TiDB 的优势。我们将分享一系列典型场景下的最佳实...

TiDB
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部