在上一篇的博文JavaSE入门学习3:搭建Java开发环境(一)中说到我们配置了Path变量的一种方式,再来说说第
二种配置方式,这种配置方式是必须掌握的。
path环境变量配置方式2
我们为什么要将第二种配置形式呢?那第一种的配置方式有什么缺点吗?假设我的计算机上安装了两个JDK,一
个是1.7,一个1.8,我刚才配置的是1.8的,那么我需要配置1.7,需要重新配置Path环境变量,有可能在修改Path环
境变量的同时误删其它的东西,所以不建议使用第一种。
path环境变量的参照形配置方式的步骤:
a)重新打开系统环境变量Path,将第一种配置的路径删除。
b)创建新的环境变量名称:JAVA_HOME;为JAVA_HOME添加变量值:JDK安装目录,我的也就
是:E:\Java\develop\jdk1.8.0_25
c)将path环境变量中JDK目录修改为:%JAVA_HOME%\bin;(%路径名称%相当于引用路径名称)
d)重新启动DOS,再次使用javac编译Java源文件和java运行字节码文件。
这种方式我们在使用其它的JDK时,可以只修改JAVA_HOME变量,不修改Path变量,这样不会误删其他的东西
造成一些其它程序无法运行。
我们再来看一个在Java程序运行的过程中出现的问题,下面的运行结果就是很好的示例,这就需要用到了另一个
系统变量classpath的配置。
classpath环境变量的配置
我们为什么要配置classpath环境变量?classpath环境变量的作用是什么?
我们在将来的Java程序开发中,只需要字节码文件,假设我们在其它的目录下运行字节码文件,结果是和上面的
一样的,是无法运行。因此上面配置的path环境变量只能在一起使用,如果要实现字节码文件在任意的目录下运行,
就需要配置classpath环境变量。因此它的作用是:使classpath目录中的.class文件可以在任意目录运行。
classpath环境变量配置方式
a)创建新的变量名称:classpath
b)变量值:设定为指定的含有class文件的目录,多个目录间使用分号(;)分割。我指定的目录是:E:\Java\JavaSE\Code;
c)重新启动DOS,使用java运行字节码文件。
d)我们在桌面重新编辑一个Java源文件,要求输出:你好,世界,保存的名称还是HelloWorld.java,继续编译和
运行。
e)上面遇到的问题是我们配置的classpath环境变量只是包含了E:\Java\JavaSE\Code这个目录下的字节码文件,
因此解决的方法是:通常将配置的目录最前面添加.;配置,即便当前目录,使.class文件搜索时首先搜索当前目录,然
后根据目录配置的顺序依次查找,找到后即运行,因此classpath目录中的配置存在先后顺序。
f)重新启动DOS,再次运行桌面上的字节码文件。
我们在网上找到的配置classpath的值可能各不相同,不过其中包含最多的就是下面的三个Java类库文件:rt.jar是
JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库。我们来看看这些类库。
1)rt.jar默认就根classloader的加载路径里面放在claspath是多此一举不信你可以去classpath里面的rt.jar然后用
java -verbose XXXX 的方式运行一个简单的类 就知道JVM的系统根Loader的路径里面不光rt.jar, jre\lib下面的大部分
jar都在这个路径里。
2)tools.jar是系统用来编译一个类的时候用到的 也就是javac的时候用到javac XXX.java。实际上就是运行java -
calsspath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.javajavac就是对上面命令的封装 所以tools.jar 也不用加到
classpath里面。
3)dt.jar是关于运行环境的类库,主要是swing的包你要用到swing时最好加上。
因此,最后配置的classpath环境变量的值是:.;E:\Java\JavaSE\Code;%JAVA_HOME%\lib\dt.jar;
path和classpath的区别
path环境变量里面记录的是可执行性文件,如.exe文件,对可执行文件先在当前路径去找,如果没找到就去path
环境变量中配置的路径去找
classpath环境变量里记录的是java类的运行文件所在的目录。
java -version 检测JDK版本: