/********关于Java的包(package)命名机制(逻辑包)与jar包(物理包)********我们可以自己开发一些java类库,这些所谓的类库根据功能的不同被装在装在不同的包中,只要我们在java文件的开始利用package关键字这个文件中的类打包即可
例如:在MyTools.java文件的开头写:package libs\javatools;
则MyTools.java文件中定义的类都会被打进libs.javatools包中,MyTools.java文件应该放在一个"\libs\javatools\"的路径下,比如:"d:\libs\javatools\MyTools.java"
编译时,直接进入这个目录javac即可(假设MyTools.java文件没有import任何其他包中的类)
运行时,则必须带着包名,java libs.javaTools.classname,并且操作系统的环境变量CLASSPATH也要包括这个包的原始路径,对于本例,就是"d:\"为了方便其他开发者使用我开发的类库,我们可以将这个类库的所有.class文件压缩成一个jar包,然后将这个.jar文件放置在任何物理位置,并在CLASSPATH中设置jar包所在的目录
这样就可以使编译器在编译导出libs.javatools包中的类的java文件时候找到被导出的工具类
例如:利用jar cf d:\libs\javatools\mytool.jar *.class 将所有我开发工具类库压缩成一个mytool.jar文件,将其放在"e:\lib\"目录下
在CLASSPATH中添加"e:\lib\"即可
例如其他开发人员写一个.java文件"JavaTest.java",其导出了包libs.javatools(import libs.javatools.*),如果CLASSPATH如上述设置好,则编译器会自动去"e:\lib\"目录下去寻找压缩了该包的jar文件,即mytool.jar,从中导出包
如果没有做设置,则编译时需要强制编译器去指定的目录下寻找jar包:javac -classpath e:\lib\mytools.jar JavaTest.java最明显的例子就是Java自身的类库。例如我们将Java安装在"c:\"目录下,则它的所有类库均放在了"c:\jdk1.5\lib\"下,而我们在CLASSPATH设置中都会写到"c:\jdk1.5\lib\*.jar"
这是因为我们的java程序一般都要使用这些类库,所以将这些类库jar文件都放入一个指定的目录(c:\jdk1.5\lib\)并在CLASSPATH中作相应设置,编译器在编译我们自己的.java文件时候就能方便地找到这些被导出的包*/