配置Java环境变量时的一个常见错误
我们在把JDK路径配置为环境变量时,有一个常用的配置方法,就是把JDK根路径配置为“JAVA_HOME”值,然后在Path中添加一条“%JAVA_HOME%\bin”值。这种方法很便于修改JDK的版本,只要在更换版本时调整JAVA_HOME的内容便可以。但是,这种配置方式往往会引发一个错误,下面详细说明这个错误。
错误表现
“JAVA_HOME”中不仅可以设置单个值,也可以像Path内容一样,用分号隔开,设置多个值。例如,计算机中有“9.0.1”和“15.0.1”两个版本的JDK,我们可以把两个版本的JDK都添加进“JAVA_HOME”中,如图:

当然,这样使用是没有错误的。但是,当我们想要从中删除一个值,只留下一个版本时,比如只留下“jdk-15.0.1”,那我们就会点击第二行,并点击右边的删除,此时,回到命令行使用java编译时,我们会发现,剩下的那个版本的jdk也不能被正确定位了。

错误溯源
定位到jdk的目录下,如果可以看到“java.dll”,“java.exe”,“javac.exe”等文件都是存在的,说明该错误的原因不是jdk被破坏。回忆一下刚才删除“JAVA_HOME”值的操作,此时再查看“JAVA_HOME”环境变量,并没有发现什么异常:

但是,打开“Path”环境变量的编辑界面,细心的话可以看到它从列表模式变成了编辑文本的模式:

在“Path”中存在多条环境变量的值时,变成编辑文本模式意味着它可能是有错误的。重新回到CMD中,输入echo %Path%命令,把Path环境变量打印到命令行进行查看,可以发现一个明显的错误,如图:

在箭头所示的地方,看到jdk的路径中错误地插入了一个分号,说明“%JAVA_PATH%”解析出来的文本串后面带上了一个分号。重新编辑“JAVA_HOME”环境变量,点击右下角的“编辑文本”按钮,在编辑文本模式中,我们发现结尾有一个显眼的分号:


把这个分号删除之后,保存,回到命令行调试,java命令正常运行了。

解决方法
当存在多条环境变量时,系统会自动地以分号分隔开它们,且不会带来异常。但是,当从多条环境变量删除到仅剩一条时,系统会遗留下一个分号。我们使用“%JAVA_HOME%\bin”这样的方式去配置Path时,由于“%JAVA_HOME%”直接解析为文本,遗留的分号就会带来错误。
如果原来的环境变量是多个值,想要删除到仅剩一个值时,一定要记得删除这个分号,或者直接用编辑文本模式去删除,以防止引入不必要的错误。

希望这篇文章可以帮助到大家!
附:
系统信息:版本 Windows 10 专业版
版本号 20H2
操作系统内部版本 19042.867
jdk版本
jdk-15.0.1
jdk-9.0.1
配置Java环境变量时的一个常见错误的更多相关文章
- Ubuntu中配置Java环境变量时,出现command not found问题解决记录
百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile, ...
- linux配置java环境变量(详细)
linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...
- linux配置java环境变量
linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...
- linux配置java环境变量(转)
linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...
- linux配置java环境变量jdk jre(详细)【转】
linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...
- linux配置java环境变量(详细)(转)
linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...
- JDK的安装与配置java环境变量
JDK安装与配置java环境变量 安装JDK 1.百度搜索jdk8找到下载地址 下载地址:Java SE Development Kit 8 - Downloads (oracle.com) 2.点击 ...
- [知了堂学习笔记]_牵线Eclipse和Tomcat第一篇 —— 配置Java环境变量&&安装eclipse
一.先给他们提供一个"浪漫的"环境,比如传说中的"鹊桥"--java环境变量.哈哈! 配置java环境变量. 下载jdk,根据自己电脑的版本和操作位数选择不同的 ...
- 第一天学JAVA,下载JDK,配置JAVA环境变量!!!
步骤一:下载JDK https://www.oracle.com 我们首先进入到这个网站下载我们运行JAVA的所必须的JDK 进入到这个网站按照图示进入到下一个页面 因为刚学JAVA,我们的JDK版本 ...
随机推荐
- Scratch 游戏开发
Scratch 游戏开发 可视化少儿编程 https://scratch.mit.edu/ Scratch Desktop https://scratch.mit.edu/download https ...
- js & regex & var & highlight
js & regex & var & highlight let key = `ali`.toLocaleUpperCase(); let name = "阿里云计算 ...
- css-next & grid layout
css-next & grid layout css3 demo https://alligator.io/ @media only screen and (max-width: 30em) ...
- DENIEL SOIBIM:如何保持坚持
丹尼尔·索比姆作为加州理工高材生,在2005年通过创建投资俱乐部对潜力公司进行天使投资,获得了美国Blue Run高层的重视,并相继担任Blue Run潜力营收专家评估师,2009年成为星盟集团的副总 ...
- 【转】ICP算法(Iterative Closest Point迭代最近点算法)
原文网址:https://www.cnblogs.com/sddai/p/6129437.html.转载主要方便随时可以查看,如有版权要求请及时联系. 最近在做点云匹配,需要用c++实现ICP算法,下 ...
- Python算法_排序数组(09)
给你一个整数数组 nums,请你将该数组升序排列. 示例 1: 输入:nums = [5,2,3,1]输出:[1,2,3,5] 示例 2: 输入:nums = [5,1,1,2,0,0]输出:[0,0 ...
- redis环境配置
1.解压redis压缩包 tar -zxvf redis-5.0.7 2. 基本环境安装 进入解压后的目录 安装yum(cents需要 其它版本Linux可能不适用yum用其它工具)ubuntu:ap ...
- 看完我的笔记不懂也会懂----Node.js
Node.js 学习 - 命令行窗口 - 进程与线程 - ECMAScript的缺点 - Node模块化 - Node中的全局对象 - 包 package - NPM包管理器 (Node Packag ...
- C++入门(1):计算机组成
系列文章尽在 | 公众号:lunvey 学习C++之前,我们有必要了解一下计算机的简单组成,毕竟C++是需要操作内存的一门语言.大家或许知道内存是什么,但是内存怎么读取和操作数据以及数据的表现形式会不 ...
- CRLF注入原理
CRLF 指的是回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n,%0a),操作系统就是根据这个标识来进行换行的,你在键盘输入回车键就是输出这个字符,只不过win ...