WenQiang's Note

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

配置了.../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平台用:做为分隔符)

.用来表示在当前目录下搜索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 类名