Java 环境变量你真的明白吗?

3,242 阅读2分钟

  学习Java第一步要做的就是配置Java环境变量:JAVA_HOMECLASSPATHPATH

变量名
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路径,并用分号;隔开

Mac/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/Mac平台用:做为分隔符)
  .用来表示在当前目录下搜索Java类
  %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar用来表示dt.jar和tools.jar中其他编译、运行java程序时需要的类。
  实际上,在JDK 1.5之后,完全可以不配置这个变量。没有配置CLASSPATH,JRE会自动搜索当前路径下的类文件。编译、运行时,系统可以自动加载dt.jar和tools.jar文件中的java类。
  当然,使用JDK 1.5以上的版本也可以配置CLASSPATH环境变量,一旦设置了该变量,JRE就会按照改变量制定的路径搜索Java类。如果CLASSPATH中不包括当前路径.,JRE就不会在当前路径下搜索Java类。
  如果想在运行Java程序时临时制定JRE搜索Java类的路径,则可以使用-classpath(-cp)选项。

java -cp dir 类名

  使用了-classpath选项后,JRE将严格按-classpath指定的路径来搜索Java类,如果想使CLASSPATH环境变量指定的路径还生效,可以按下面的格式来运行Java程序。

java -cp %CLASSPATH%;.;dir 类名