1. Path变量的配置
安装好JDK之后我们需要使用javac来对java源文件进行编译,例如javac test1.java,但此时直接在DOS终端中使用javac会出现如下提示:
'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。
而出现该问题的原因是windows操作系统无法找到javac命令文件(javac是一个命令,同时也是一个执行程序(javac.exe)),windows操作系统搜索磁盘上某个命令(程序)的顺序如下:
- 从当前目录(终端命令行中指定的目录)下搜索
- 从环境变量Path指定的路径下进行搜索
- 上述两个地方都没搜索到则提示错误
因此如果需要在任意目录下使用javac命令则需将javac.exe所在的目录添加到到环境变量Path中,环境变量配置中用户变量和系统变量的区别如下:
- 用户变量:仅对当前用户有效
- 系统变量:对系统中的所有用户都有效
因此可根据需求选择对应的变量进行配置,具体配置为:
在Path中添加javac.exe所在的目录,如:
D:\Program Files\Java\jdk1.8.0_261\bin
2. classpath变量的配置
classpath变量的配置原理与Path类似,其目的是为了能够在命令行窗口中任意目录下执行java源文件编译后的字节码文件而无需在规定目录下执行。由于classpath变量并非系统自带的变量,因此需手动新建该变量并将对应目录添加到该变量中,如:
D:\javacode\class
D:\javacode\class
目录存放java源文件编译后的字节码文件。
当使用java
命令执行字节码文件时的执行流程如下:
- java命令会启动JVM
- JVM启动之后会启动类加载器ClassLoader
- ClassLoader会在硬盘上的某个目录下搜索指定的字节码文件
- 找到该文件后执行该文件,否则提示错误
而环境变量classpath的作用就是给ClassLoader类加载器指定路径。
3. JAVA_HOME变量的配置
该变量的作用是为了给第三方使用JDK的软件指定JDK的目录(例如Tomcat),这是因为第三方软件会引用约定好的JAVA_HOME变量来获取JDK的存放目录。JAVA_HOME变量不是系统自带的变量因此需手动新建,然后将JDK的目录添加到该变量中,如:
D:\Program Files\Java\jdk1.8.0_261
此时Path变量中的路径也可更改为
%JAVA_HOME%\bin