关键词:java环境配置、javac不是内部和外部问题、系统变量与用户变量、导入dt.jar、tools.jar等变量值的作用(扩展)
java环境配置
进入环境变量配置窗口,设置3项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”:
- JAVA_HOME:设为JDK的安装路径(如E:\Program Files\java\jdk1.8.0_121),此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依靠此变量)。
- Path:使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意前后自己判断是否要加引号)。%JAVA_HOME%就是引用前面指定的JAVA_HOME变量。
- CLASSPATH:Java运行环境加载类的路径,只有类在classpath中,才能被识别和加载,设为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(注意前面的点号(.),点号表示当前路径)。
检验配置:
在doc命令输入(打开doc快捷键window+R,运行框中输入cmd)以下命令
-
java -version
- java
- javac(问题来了)
解决问题的过程
为什么出现会出现这个问题呢?我也是一脸懵逼,明明都是按照规则来的,为什么还是出错了呢?于是我便开始检查前面的过程,想到的几个原因大致是:
- 是否安装了jdk(只安装jre前面两个命令是可以显示正确的)
- 符号是否出现中文
在我仔仔细细的检查之后,我以确保没有以上问题,可是仍旧是上述结果,于是我使用命令path
或者set
查看环境路径:
这里可以看到%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin前%JAVA_HOME%是没有变化的,按照查找路径规则,再配置JAVA_HOME E:\Program Files\java\jdk1.8.0_121后,%JAVA_HOME%引用应被 E:\Program Files\java\jdk1.8.0_121替换的,为什么没有替换呢?请看我的环境配置:
我居然把JAVA_HOME、PATH、CLASSPATH三条配置分开写在了用户变量与系统变量中,这样不伦不类的写法使系统不能进行路径匹配,导致javac命令出错。所以,大家在配置时一定要将三条写在统一的变量中。
系统变量与用户变量的区别
两者主要是范围上有所不同:
系统变量的路径值对所有用户有效,而用户变量只对配置该路径的当前用户有效。