Java的环境变量ClassPath详解
⼀ 点睛
该变量是⽤来告诉Java解释器(即java命令)在哪些⽬录下可到所需要执⾏的class⽂件(即javac编译⽣成的字节码⽂件)。java环境变量自动配置
ClassPath指定的是java加载类的路径。只有类在ClassPath中,java命令才能到它,并解释它。
⼆ 实战——在命令⾏配置ClassPath
1 将HelloWorld.class放到D盘下。
2 在D盘下执⾏下⾯命令
D:\>java HelloWorld
Hello World
3 在C盘下执⾏下⾯命令
C:\>java HelloWorld
错误: 不到或⽆法加载主类 HelloWorld
4 在C盘下执⾏下⾯命令
C:\>set classpath=d:
C:\>java HelloWorld
Hello World
从输出结果可知:虽然在C⽬录下没有 HelloWorld ⽂件,但也可以⽤ java HelloWorld 执⾏ HelloWorld.class ⽂件。之所以这样,是因为在 C ⽬录下使⽤了 set classpath=d: 命令,它把类的查路径指向了 D 盘。因此在运⾏的时候⾃动从 ClassPath 中查这个Hello类⽂件,⽽ ClassPath 中包括了路径 D: ,所以运⾏成功。
通过命令⾏设置classpath,关闭命令⾏后就失效了,需要重新设置。可以通过环境变量配置类解决这⼀问题。
三 实战——配置环境变量ClassPath
1 将HelloWorld.class放到D盘下。
2 ClassPath环境变量配置如下
3 执⾏如下命令
E:\>java HelloWorld
Hello World
E:\>f:
F:\>java HelloWorld
Hello World
从结果来看,⽆论什么地⽅,都可以成功执⾏HelloWorld.class,这是因为配置成 .;D: 后,可以从D盘中到HelloWorld.class⽂件。
4 ClassPath环境变量配置如下
5 执⾏如下命令
E:\>java HelloWorld
错误: 不到或⽆法加载主类 HelloWorld
E:\>f:
F:\>java HelloWorld
错误: 不到或⽆法加载主类 HelloWorld
F:\>d:
D:\>java HelloWorld
Hello World
只有在D盘下可以执⾏成功,这是因为配置为 . 后,表⽰从当前⽬录下HelloWorld.class,然后再执⾏,当在D盘下执⾏命令,当前⽬录就是D盘,所以运⾏成功。
6 ClassPath环境变量配置如下
7 执⾏如下命令
D:\>java Helloworld
错误: 不到或⽆法加载主类 Helloworld
D:\>e:
E:\>java Helloworld
错误: 不到或⽆法加载主类 Helloworld
D:\tmp>java HelloWorld
Hello World
明明Helloworld.class在D盘,还是执⾏错误,这是因为配置为..,就表⽰从当前⽬录的上⼀层⽬录去 HelloWorld.class。
所以D盘下执⾏失败,反⽽在D:\tmp下可以执⾏成功。
8 删除ClassPath环境变量
9 执⾏下⾯命令
D:\>java HelloWorld
Hello World
D:\>e:
E:\>java HelloWorld
错误: 不到或⽆法加载主类 HelloWorld
怎样解释这种现象,因为如果不配置ClassPath环境变量,Window默认配置ClassPath为 . 即在当前路径下HelloWorld.class。