我们在把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环境变量时的一个常见错误的更多相关文章

  1. Ubuntu中配置Java环境变量时,出现command not found问题解决记录

    百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile, ...

  2. linux配置java环境变量(详细)

    linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...

  3. linux配置java环境变量

    linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...

  4. linux配置java环境变量(转)

    linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...

  5. linux配置java环境变量jdk jre(详细)【转】

    linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...

  6. linux配置java环境变量(详细)(转)

    linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...

  7. JDK的安装与配置java环境变量

    JDK安装与配置java环境变量 安装JDK 1.百度搜索jdk8找到下载地址 下载地址:Java SE Development Kit 8 - Downloads (oracle.com) 2.点击 ...

  8. [知了堂学习笔记]_牵线Eclipse和Tomcat第一篇 —— 配置Java环境变量&&安装eclipse

    一.先给他们提供一个"浪漫的"环境,比如传说中的"鹊桥"--java环境变量.哈哈! 配置java环境变量. 下载jdk,根据自己电脑的版本和操作位数选择不同的 ...

  9. 第一天学JAVA,下载JDK,配置JAVA环境变量!!!

    步骤一:下载JDK https://www.oracle.com 我们首先进入到这个网站下载我们运行JAVA的所必须的JDK 进入到这个网站按照图示进入到下一个页面 因为刚学JAVA,我们的JDK版本 ...

随机推荐

  1. free HTTPS for website! & SSL & TLS & HTTP/2 & SPDY

    HTTPS for website! 1 1 1 # OK (bugs === main domain temporarily OK) # sub domain allways OK! # partl ...

  2. Android 开启 WebView 页面 Chrome debug

    Android 开启 WebView 页面 Chrome debug WebView debug // 开启 WebView 页面 debug testWebView.setWebContentsDe ...

  3. puppeteer & screenshot

    puppeteer & screenshot http://localhost:9812/screenshot?url=https://cdn.xgqfrms.xyz/

  4. parcel bug & not support normal import React & ReactDOM module

    bug report not support normal import React & ReactDOM module, why Code Sample OK import * as Rea ...

  5. c#winform主题实现的一个方法

    winform的主题实现没有bs里面那么舒服,下面做了一个简单实现,记录一下. 1.一个接口,需要做主题的控件.窗体都要实现这个接口 /// <summary> /// 使用主题的控件.窗 ...

  6. iOS拍照定制之AVCapturePhotoOutput

    问题 领导安排任务,写个拍照功能,界面跟系统拍照有点出入 拍完照片,底部显示已拍照片,有个拍照上限[在此不论] 点击已拍照片,可以预览.放大缩小查看 思路 系统拍照肯定不行了,只能定制,没提是否拍照禁 ...

  7. Mybatis-Plus插件配置

    yml配置 1 # Mybatis-Plus 2 mybatis-plus: 3 # 配置mapper的扫描,找到所有的mapper.xml映射文件 4 mapper-locations: com.x ...

  8. CentOS7 下Docker最新入门教程 超级详细 (安装以及简单的使用)

    转载https://blog.csdn.net/wzsy_ll/article/details/82866627 1.为什么使用Docker(本人) 最近总是频繁的在新服务器发布项目, 每次发布都需要 ...

  9. 基于docker搭建jenkins

    一.概述 Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎.Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各 ...

  10. Django Static与Media

    关于Django中Static和Media的设置问题(尤其是css和js静态文件加载的问题),网上有很多回答,但是发现有相当一部分回答并不能解决问题.有的可能是Django版本问题,有的是把media ...