Java学习笔记:Java环境变量
学习Java第一步要做的就是配置下面的环境变量:
变量名 | 值 |
---|---|
JAVA_HOME | JDK安装目录 |
CLASSPATH | .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar |
Path | %JAVA_HOME%\bin |
配置这三个变量的作用是什么呢?有必要全部配置吗?
JAVA_HOME
JDK安装目录。为了方便在CLASSPATH和PATH中使用、更新JDK目录。
其实不配置JAVA_HOME,直接在CLASSPATH和PATH中使用JDK的绝对路径也是可以的。但还是建议配置,因为Java编写的软件可能会使用这个变量。
Path
指定命令搜索路径。要求系统运行一个程序而没有告诉程序所在目录时,系统会在当前目录和PATH指定的路径中查找。
在终端输入java时,系统本身没有java这个程序。系统就会先在当前目录查找java程序,如果有就会执行java,否则就会在Path中指定的路径中找,因为我们在Path配置了.../jdk/bin
,系统会在这个路径下找到Java程序并执行。否则就提示找不到命令。
注意:许多初学者在配置Path变量时,会完全把原先的Path覆盖,导致原先的系统命令不能使用。配置Path的正确方式如下:
Windows
在原本的Path值后加上jdk的bin路径,并用分号
;
隔开
Linux/Mac
配置了
.../jdk/bin
后在后面加上$PATH
,用冒号:
隔开PATH=${JAVA_HOME}/bin:$PATH
CLASSPATH
顾名思义,CLASSPATH就是字节码文件(.class)的路径。编译、运行Java程序时,JRE会去该变量指定的路径中搜索所需的类(.class)文件
CLASSPATH的值一般是:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
(;
是Windows平台多个路径之间的分隔符,Linux/Mac平台用:
做为分隔符)
.
用来表示在当前目录下搜索Java类
%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
表示dt.jar和tools.jar中的类。
实际上,在JDK 1.5之后,完全可以不配置这个变量。不配置CLASSPATH,JRE会自动搜索当前路径下的类文件。编译、运行时,系统可以自动加载dt.jar和tools.jar文件中的Java类。
当然,使用JDK 1.5以上的版本也可以配置CLASSPATH环境变量,一旦设置了该变量,JRE就会按照该变量指定的路径搜索Java类。如果CLASSPATH中不包括当前路径.
,JRE就不会在当前路径下搜索Java类。
如果想在运行Java程序时临时指定JRE搜索Java类的路径,则可以使用-classpath
(-cp)选项,如下面的格式。(dir是要指定的路径名)
1 | java -classpath dir 类名 |
使用了-classpath
选项后,JRE将严格按-classpath
指定的路径来搜索Java类,如果想使CLASSPATH环境变量指定的路径还生效,可以按下面的格式来运行Java程序。
1 | java -classpath %CLASSPATH%;.;dir 类名 |