------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
一、 配置环境变量path
环境变量path的作用:path的作用是制定命令搜索路径。能够使开发者在任何目录下直接运行java命令程序(将查找的任务交给操作系统去做,方便开发。
1). 当你在dos中的使用某个exe命令的时候,windows操作系统怎么查找这个exe的位置呢?
首先到DOS窗口运行命令的所在的当前的文件夹目录去查找这个exe是否存在。 如果找不到这个exe,此时.操作系统会到系统的环境变量path中去查找这个exe所 在的
路径。如果查找到了,就能执行这个命令。否则,就会出现错误提示:xxx不是内部或者外部命令
如果出现上面的错误提示,修正办法就是把这个exe所在的目录位置设置到环境变量path中。
2). 配置方法:(主要是将JDK的bin目录配置到path中)
假设要配置的bin目录是: “C:\Program Files\Java\jdk1.7.0_02\bin”
(1). 永久配置
第一种:在系统环境变量path的最前面直接加入当前当前jre\bin目录的绝对路径,并在后面紧跟一个;。
第二种:在系统环境变量中新建一个环境变量JAVA_HOME 其值为当前系统上JDK所在目录的绝对路径。然后在系统环境变量path的最前面加入:%JAVA_HOME%\bin;
主要步骤
(1). 区分目录中的变化的部分和不变的部分
目录中容易变化的部分设置到JAVA_HOME变量中 这里面“C:\Program Files\Java\jdk1.7.0_02\”是容易随着每次安装java软件的版本的不同和安装软件的位置
不同而变化的,所以把这部分起名叫做JAVA_HOME。
目录中相对不变的部分采用和JAVA_HOME组合的方式设置到path中。即 %JAVA_HOME%\bin;
(2). 将设置好的jdk的bin的值添加到path中
这样做的好处:一旦jdk目录被修改了,直接修改这个仅仅具有一个取值的JAVA_HOME变量即可,而不用重新修改还有很多目录的path变量;设置JAVA_HOME的另一个
好处:Tomcat服务器本身启动的时候,需要值为JDK下bin的JAVA_HOME环境变量
注意:OS在path中查找exe的顺序:OS在path中查找所需的exe的顺序就是从path的值的最开始查找。先查找到,就执行先查找到路径中的exe。所以 为了使得OS能够
率先查找到我们自己设定的jdk的目录,应该把自行设定的%JAVA_HOME%\bin添加到path原有值的前面。
(2). 临时配置
在doc命令行窗口 set path=要添加java的bin目录的绝对路径;%path% 。(set 显示、设置或删除 Windows 环境变量。 path 查看环境变量)
其中: %path%是获取原始path变量中的值 也就是说在临时设置中在已有环境变量中添加环境变量 path=要添加的环境变量;%path%
注意:这种临时配置jdk的方式仅仅在当前的dos和通过当前dos窗口通过start命令生成的新窗口有效。如果关掉这个dos窗口之后,重新手动打开一个新的dos窗口,刚
才的set path无效。
二、 配置环境变量 classpath
classpath的作用:制定JVM查找已有类时的搜索路径
如果想通过java.exe这个工具去运行某个字节码文件(.class),必须到这个字节码文件所在的目录下才能执行。否则会抛出异常
想法: 能不能在任意目录下,都能执行某一固定文件夹下存放的.class的字节码文件?做法:可以像配置javac和java一样,把这个指定的目录告诉系统的某个环境变量
。让系统自行查找指定位置的字节码文件。这就需要配置classpath环境变量。
(1). 临时配置
[1]. 在所在的命令行窗口中 输入set classpath=”字节码文件所在的目录;”。之后便可以在任意文件夹下面运行刚才在classpath中指定的字节码文件所在的目录
[2]. JVM执行class文件的原理:就是在执行java xxx.class回车之后,JVM就回到classpath中去查找有没有名叫xxx.class的字节码文件。如果有,就执行。如果没有再
找一下当前目录,
[3]. 清空环境变量:在cmd中输入 “set 环境变量名=,就可以清空对应的环境变量的值。
注意:**当执行“java A”的时候,如果在当前目录和classpath中指定的都有同名的A.class的文件,JVM会执行哪一个?JVM会先执行classpath中指定的名叫A.class的
字节码文件。如果在classpath中找不到A.class,JVM才会到当前目录找A.class文件。
2.set classpath = C:\ 命令后面有与没有分号的区别:
如果有分号,那么,他会在JVM的classpath里面查找,如果没有他会在当前目录下面找;如果没加分号,JVM只在JVM下面查找,不管有还是没有,他都不会查找当前目
录了,如果classpath里面没有的话,那么会报告错误
[4]. 设置classpath环境变量来更改JVM查找class文件的顺序setclasspath=.;其他字节码文件存放的目录其中,.代表执行命令的当前目录。 这是推荐的设置办法。这样
JVM首先去当前目录查找需要的class文件。如果没找到,再去后面指定的目录中去查找。如果在当前目录和指定的目录都没找到指定的字节码文件,则java命令指定之后就
会抛出异常。
(2). 永久配置
新建系统环境变量classpath,最好把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也应该加入到该变量中。
步骤和通过windows对话框的方式配置path变量一样。只不过classpath不是OS自带的变量。第一次使用需要首先手动创建这个变量。其余配置方式一样。
4.classpath和path的不同点(前提:classpath值的末尾加了;)
1)path是先在当前路径下面找,如果没找到再到path当中找(先当前,后path); classpath正好和path相反。java A 执行之后,JVM会首先到classpath中指定的目录
去查找有没有指定的类文件。如果有就执行。如果没有,才会到当前目录查找。(先classpath,后当前)
2)path是设置系统可执行程序的路径,classpath是java虚拟机在运行java程序的时候,专门使用的一个路径
格式:dos下面添加路径path = C:\;%path% 添加path变量