CLASSPATH以及包和目录结构的关系

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

CLASSPATH 中包含的的路径中,每一个都是 package 的根,而在此目录下的所有子目录都可以成

为 package,条件是,该目录下有封装在该 package 中的类。

说起来有些抽象,不太好懂,还是举个例子:

set CLASSPATH=%Java_HOME%\jre\lib\rt.jar;C:\java

C:\java 的结构如下:

C:\java

-- myeditor

-- test

-- XML

`-- swing

`-- hello

那么,C:\java 就是一个 package 的根,在这个目录下写的 Java 程序都不需要使用

package 语句。而 test 目录就是 package 根下的一个子包 test,因为写在 test 中的 java

程序就需要写一个 package 语句,如下

/**

* C:\java\Test.java

* @author fancy

*/

pacakge test;

......

而 test 下的 xml 又是 test 的子包,其中的 java 程序应该如下:

/**

* C:\java\test\TestXml.java

* @author fancy

*/

pacakge test.xml;

......

当然,在 test 和 xml 目录中的 java 程序也可以不写 package 语句。假如这样,需要在

CLASSPATH 中加上一个当前目录 (.),如

set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;C:\java;.

然后转到相应目录下,如

C:\cd java\test

再运行

C:\Java\testjava Test

这样也可以,因为 “.” 表示当前目录是一个包的根。

使用包结构最典型的一个例子就是,将一个工程或项目 (Project) 作为一个包的根,然后再

根据需要划分子包,如上例目录结构中,myeditor 就是一个小项目,可以作为一个包,假如在其

中写一个 MyEdtior 主类,那么,完成之后应该使用如下语句运行:

java myeditor.MyEdtior

test 中根据测试程序的种类分出了 xml 包和 swing 包,那么相应的运行就是:

java test.Test

java test.xml.Test

java test.swing.Test

这里调用的三个 Test 类是分别写在 C:\java\test、C:\java\test\xml 和

C:\java\test\swing 中的,在程序的一开始分别有如下申明

/** C:\java\test\Test.java */

package test;

...

/** C:\java\test\xml\Test.java */

package test.xml;

...

/** C:\java\test\swing\Test.java */

package test.swing;

...

最后还有一点需要注重:注重文件名和目录名的大小写,文件名的大小写会影响类名的大小

写,而目录名的大小写会影响包名的大小写。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有