关闭

用例子解释:如何设置CLASSPATH(Java)

591人阅读 评论(0) 收藏 举报
分类:

设置CLASSPATH的目的是让Java执行环境找到指定的Java程序(也就是.class文件)

 

Java程序如何找到并引用所需要的类?

 

1.利用环境变量CLASSPATH。CLASSPATH中定义了很多根目录。运行程序时Java解释器只从这些根目录开始查找一个Java程序用到的类,即根目录和import指出的子目录 。例如,需要从当前目录查找,则需要加入"."。


2.可以把包中的所有.class文件打包为一个jar文件,然后在CLASSPATH中加入该文件的路径。


关于打包:

例如我现在C:\myproj\classes\X\Y下有A.class和B.class,我要打包(内部包含子目录信息)成food.jar

就要这样写:


这样,food.jar就会生成在C:\myproj\classes\下

当java程序中要用到A类的时候可以import X.Y.A

CLASSPATH的设置就是C:\myproj\classes\food.jar


3.可以在编译和运行时加入classpath参数指出所需要的包和根目录:

C:>javac -classpath c:\java\PackJar\food.jar;c:\java;. PackJar.java 

C:>java -classpath c:\java\PackJar\food.jar; c:\java;. PackJar


Window8下CLASSPATH的设置方法:右键计算机,点击属性,出现如下界面。

 

点击左边的高级系统设置



选择高级



点击右下角的环境变量

在系统变量那里找到CLASSPATH

 点击编辑



我的CLASSPATH变量值设置为

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar;C:\myproj\classes;

最前面的是.;

这个的意思是告诉Java程序找类时要先查找当前目录的.class文件


那么当前目录是指什么?

还是用一个具体的例子来说明吧!

例如我现在在C:\myproj\bin下有一个Test.java文件

内容如下:



编译:



以上例子中当前目录就是C:\myproj\bin

可以看到Test.java用到了我自己定义的类A,那它是怎么找到类A的呢?

因为我的环境变量设置了.;

所以会到当前目录找,也就是看C:\myproj\bin目录下有没有直接有一个A.class。

我的A.class没有放在那个目录下,所以必定是没有的。

然后它还会去找,看看是不是系统类等等。

也必定不是。

最后可以看到我还设置了一个路径C:\myproj\classes;

所以会到C:\myproj\classes下看有没有A.class,这时候就找到了A.class。

其实A.class的路径是C:\myproj\classes\X\Y\A.class

找到的原因是我在Test.java里写了import X.Y.*,(导入该目录下的所有类)这个和CLASSPATH的根目录C:\myproj\classes;合起来就可以找到类A了。

另外,也可以写成import X.Y.A


感谢所有让我明白CLASSPATH的你们

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19143次
    • 积分:430
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:1篇
    • 译文:0篇
    • 评论:21条
    最新评论