Java环境变量配置详解
作为一个java开发者,在每次装完jdk之后,都需要配置一下java的环境变量
JAVA_HOME:C:\Program Files\Java\jdk1.8.0_101(你的电脑上jdk的安装路径,因人而异)
CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
作为一个重装系统的狂魔,大二到大三已经不知道配置过多少次这玩意了,但每次都要百度知道这玩意怎么配,而且每次都不知道这写的是什么意思。下面我们来一个一个分析。
-
JAVA_HOME
它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。 没什么好说的,大家应该都能看懂吧。
-
Path环境变量
作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待。“%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;“这里的%%其实就是引用之前写好的JAVA_HOME,所以直接写成”C:\Program Files\Java\jdk1.8.0_101、JAVA_HOME%\bin“也不会有问题
-
CLASSPATH环境变量(重点介绍)
- 首先先介绍一下CLASSPATH在java中代表什么,根据《Thinking In Java》中的解释解释器在运行java的时候首先CLASSPATH环境变量,CLASSPATH包含一个或多个目录,用于查找class文件的根目录。在java的代码中我们经常写到import *..之类什么的,那Java的编译器又是怎么找到具体的类路径呢。答案就在CLASSPATH中。
- 当编译器遇到import语句时,就会在CLASSPATH的目录下查找,比如”import java.util.ArrayList;“,那么就会在CLASSPATH路径下查找java/util/ArrayList.java,如果没找到就会报错。
”.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;“,一点一点来,首先是".;",开始最让我感到疑惑的就是这玩意是干嘛的,度娘了半天才知道这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件。%JAVA_HOME%同样是对已经设置的环境变量的引用,后面的tools.jar是工具类库,我们平时用到的:
javac XXX.java
实际上就是运行
javac -Calsspath=%JAVA_HOME%/lib/tools.jar xx.xxx.Main XXX.java
dt.jar是关于运行环境的类库,如果不做swing的开发,这个也可以不加
-
既然CLASSPATH环境这么重要,如果我们在开发时不设置这玩意会有什么影响吗?在简单作死了一下,把CLASSPATH环境变量给删了,然后运行之前的项目,居然发现。。。。。。。
一点影响也没有!!!然后我在命令行中尝试运行javac XXX.java ,居然也没错。表示整个人都思密达了,感觉自己试试被骗了。万事不行找谷歌,后来才发现,jdk1.6之后就不需要配置这玩意了,坑爹呢这是,那你刚刚说那么多不都是废话吗。不过建议还是配一下,学习一下原理也是不错的,以后出去也能装装逼嘛。不过其它两个是一定要配置的。