平时开发用工具的原因,配置JDK环境后,在CMD窗口输入 java -verion 命令,有显示JDK版本,就认为环境已经配置好。
比如这样:
但是这几天想看看java文件编译后的字节码是啥样的,于是CMD窗口,输入 javac , 发现提示报错:
这就很奇怪,于是去找环境变量的配置,经过自己测试,终于解决问题。
首先回顾一下我自己的 JDK 的环境变量配置的 三个变量:
JAVA_HOME:(jdk安装路径)
C:\Program Files\Java\jdk1.8.0_131
CLASSPATH:(现在的jdk版本不需要配置这个变量了,配好path变量就足够)
.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
(注意 前面有这个 .; 英文字符分号和英文字符点)
PATH:
%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin
我的配置如图所示(JDK1.8)
只有 JAVA_HOME 和 PATH 做了修改
查看JDK版本正常显示,看似没问题,但是 javac 指令就报错。
问题就在于我的 JAVA_HOME 是在用户变量中,而不是系统变量
也就是说path这个变量中的 %JAVA_HOME% 对于javac来说可能没生效!
于是把 JAVA_HOME 这个变量放到系统变量中,或者直接使用绝对路径不使用 JAVA_HOME 变量,
于是就解决了问题。
还有一个坑
当你的 PATH 这个是直接复制过来的,对于win10来说,不能直接粘贴进来
错误示例
虽然分号是环境变量的分割符,
但是你输入的文本里面有分号,结果系统自动给你加了引号
点击编辑文本, 或者 cmd直接输入path就会发现:
正确示例
最后完美解决
总结
1. 变量都写在系统变量中!
2. 有;分隔的变量属性分多条分开写!
3. 修改好环境变量之后记得保存,需要重新打开新的cmd窗口!!
-------------------------------------------------------