Java的环境变量ClassPath详解

一 点睛

该变量是用来告诉Java解释器(即java命令)在哪些目录下可找到所需要执行的class文件(即javac编译生成的字节码文件)。

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环境变量配置如下

Java的环境变量ClassPath详解_第1张图片

3 执行如下命令

E:\>java HelloWorld
Hello World

E:\>f:

F:\>java HelloWorld
Hello World

从结果来看,无论什么地方,都可以成功执行HelloWorld.class,这是因为配置成 .;D: 后,可以从D盘中找到HelloWorld.class文件。

4 ClassPath环境变量配置如下

Java的环境变量ClassPath详解_第2张图片

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环境变量配置如下

Java的环境变量ClassPath详解_第3张图片

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。

你可能感兴趣的:(java)