关于windows的jdk
扯淡
工作从web开发转向build automation,不知不觉已经一个半月了,各种学习熟悉build相关的流程和知识,比如ant, maven, jenkins 等CI技能。
因为这一个半月学的东西有点多,整理略显繁琐,但眼看着6月将过,还是阶段性总结一下=)
为了配置多jdk编译环境,最近又去oracle上download了6u45版本的jdk。很久没用windows= = path的优先级问题忘记了
问题
用下载的xxx.exe安装了jdk以后,发现环境变量里的JAVA_HOME和PATH里配置的java路径无效了,我尝试着切换JAVA_HOME里配的jdk版本,但是徒劳无功,java -version结果始终是我安装的那个jdk的版本
原因
查看PATH,强调最开始的几个环境变量%SystemRoot%\system32;%SystemRoot%;
其中,SystemRoot=C:\windows。我的jdk路径配置在PATH的最后面%JAVA_HOME%\bin;
Path的优先级是从前往后。
问题就是安装版的jdk将java.exe, javaw.exe, javaws.java复制到了C:\windows\system32里,这个目录配置成Path的最高优先级,所以,无论如何我这边如何修改JAVA_HOME都是无效的。
解决
1. 删了C:\windows\system32里的3个java相关exe(放心,%JAVA_HOME%\bin\里有原形的)
2. 或者,将path中配置java的那段提到PATH最前面,提高优先级
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下