PATH、CLASSPATH和JAVA_HOME的区别及作用

我们首先明确下三者的概念

  • PATH--PATH指定了可执行的二进制文件的位置。例如:我们添加了JDK或者JRE的目录,这样我们就可以直接使用这些目录下的命令却不需要指定这些命令的绝对路径;
  • CLASSPATH--维基百科的定义是:Classpath是Java虚拟机或Java编译器中的一个参数,用于指定用户定义的类和包的位置。 可以在命令行上或通过环境变量进行设置;
  • JAVA_HOME—一般将其指向JDK的安装目录,许多IDE需要依靠它来找到JDK的安装目录,如果没有这个变量,可能会找不到javac等可执行文件。

三者之间没有什么必然的联系,如果硬要说有联系的话,那么我们通常是通过JAVA_HOME这个变量来方便地指定PATH和CLASSPATH,比如我的JAVA_HOME是这么配置的:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
那么我的PATH可以这么配置:
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH可以这么配置:
CLASS_PATH="$JAVA_HOME/lib"

JDK1.5之后好像已经不需要再配置PATH和CLASSPATH了。

推荐阅读更多精彩内容