什么是package
- 为了便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间。
- package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。
- Java编译器把包对应于文件系统的目录管理,package语句中,用‘.’来指明包的层次(保证类在正确目录下),例如使用语句:
pack com.sxt //该文件中所有的类位于.\com\sxt目录下
怎么用package
- 如果将一个类打包,则使用该类时,必须使用该类的全名(例如: com.sxt.Dog),Java编译器才会在找到该类。
- 也可以使用import在文件的开头引入要使用到的类;例如:
import java.util.Dog ;//引入java.util包中的Dog类 import java.util.*;//引入java.util包中所有的类 Dog d = new Dog(); //可以直接使用类名
- 访问位于同一个包中的类不需要引入。
有关jar包(J2SDK中主要的包介绍)
- java.lang—包含一些Java语言的核心类,如:String、Math、Integer、System和Thread,提供常用命令
- java.awt—包含了构成抽象窗口工具集合(abatract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)
- java.applet—包含applet运行所需的一些类。
- java.net—包含执行与网络相关的操作的类。
- java.io—包含能提供多种输入/输出功能的类。
- java.util—包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。
jar包的创建
D:\JavaProjects\day02>jar
用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项:
-c 创建新档案
-t 列出档案目录
-x 从档案中提取指定的 (或所有) 文件
-u 更新现有档案
-v 在标准输出中生成详细输出
-f 指定档案文件名
-m 包含指定清单文件中的清单信息
-n 创建新档案后执行 Pack200 规范化
-e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储; 不使用任何 ZIP 压缩
-P 保留文件名中的前导 '/' (绝对路径) 和 ".." (父目录) 组件
-M 不创建条目的清单文件
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含以下文件
如果任何文件为目录, 则对其进行递归处理。
清单文件名, 档案文件名和入口点名称的指定顺序
与 'm', 'f' 和 'e' 标记的指定顺序相同。
示例 1: 将两个类文件归档到一个名为 classes.jar 的档案中:
jar cvf classes.jar Foo.class Bar.class
示例 2: 使用现有的清单文件 'mymanifest'
并将 foo/ 目录中的所有文件归档到 'classes.jar' 中:
jar cvfm classes.jar mymanifest -C foo/.
jar的使用
jar命令-e选项,该选项指定JAR包中作为程序入口的主类的类名。
jar cvfe test.jar test.Test test
上面的命令把test目录下的所有文件都压缩到test.jar包中,并指定使用test.Test类作为程序入口。
运行上面JAR包有两种方式:
java -jar test.jar
javaw test.jar
当创建JAR包时,所有类都必须放在与包结构对应的目录结构中。就像上面-e选项指定的Test类,表明入口类为Test类。因此在JAR包下包含Test.class文件。