JC-jEnv
Author: JC0o0l,Jerrybird
GitHub: https://github.com/chroblert/JC-jEnv.git
WeChat: JC_SecNotes(Zer0ne安全研究)
0x00 用途
Java版本切换工具,可以很方便的在java的多个版本之间切换。可以设置只在当前的终端中生效还是在全局都生效。
项目地址:https://github.com/chroblert/JC-jEnv.git
0x01 原理:
通过reg,set,setx等命令修改或刷新JAVA_HOME,PATH,等环境变量以及注册表。
将添加的保存到用户环境变量JC_jEnv中
通过call来达到多重嵌套的效果
通过doskey来设置命令别名
0x02 效果:
jenv -h
1611209361297.png
jenv local java9
1611210131816.png
jenv version
1611210177545.png
jenv del java9
1611210266710.png
jenv add d:\11-java\jdk-9.0.4 java9
1611210250119.png
0x03 参数说明:
jenv [options]
options如下
version
显示当前设置的所有的java版本
local
设置java版本,只在当前shell下起作用
global
设置java版本,在全局下都起作用
add
添加一个版本的java。
如:jenv add d:\java\jdk-9.0.4 java9
del
删除一个版本的java
如:jenv del java9
0x04 使用说明:
将该bat脚本添加到PATH系统环境变量中
这样使用的时候,可以直接输入jenv
PATH中使用%JAVA_HOME%\bin
path环境变量中不能有具体的java路径,要使用%JAVA_HOME%\bin的方式,无论系统环境变量还是用户环境变量
删除系统环境变量中的JAVA_HOME
因为生成path环境变量的时候,系统变量中的path>用户环境变量中的path。而要修改系统环境变量,需要管理员权限,所以该程序只修改了用户环境变量。
0x05 参考资料:
参考资料:windows系统一键配置修改环境变量[1]
参考资料:Windows设置cmd别名[2]
参考资料:setx设置永久环境变量[3]
参考资料:刷新环境变量[4]
参考资料:batch之变量延迟[5]
参考资料:was unexpect at this time[6]
参考资料:批处理变量多重嵌套[7]
参考资料:环境变量中特殊字符()的问题[8]
参考资料:setx1024个字符限制的解决方法[9]
References
[1] windows系统一键配置修改环境变量: https://www.jianshu.com/p/7d90042f644f[2] Windows设置cmd别名: https://blog.csdn.net/YiRanZhiLiPoSui/article/details/83116819[3] setx设置永久环境变量: https://blog.csdn.net/fm0517/article/details/52450940[4] 刷新环境变量: https://github.com/chocolatey/choco/blob/master/src/chocolatey.resources/redirects/RefreshEnv.cmd[5] batch之变量延迟: https://www.cnblogs.com/ini_always/archive/2012/02/16/2355031.html[6] was unexpect at this time: https://stackoom.com/question/2pffV/%E8%9D%99%E8%9D%A0-Set%E5%91%BD%E4%BB%A4%E5%9C%A8%E6%8B%AC%E5%8F%B7%E5%86%85%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8[7] 批处理变量多重嵌套: https://www.cnblogs.com/xxcanghai/p/4584042.html[8] 环境变量中特殊字符()的问题: https://qastack.cn/superuser/119610/spaces-and-parenthesis-in-windows-path-variable-screws-up-batch-files[9] setx1024个字符限制的解决方法: https://qastack.cn/superuser/387619/overcoming-the-1024-character-limit-with-setx