1 JAR
jar文件是Java标准的归档和发布格式。
它用于applets,servlets,标准之外的GUI应用程序,库字节码文件,Java豆和其他。
用JAR来放置配置数据,参数,检索表,本地化的字符串和其他非代码资源都是非常合适的。
此外,将这些资源储存在JAR中你将无需担心:
(1)文件被移动
(2)本地文件系统的细节。
还能提高性能。例如Java-web上的独立运行的应用程序,内容被压缩,下载更统一。
JAR的内部实现是ZIP。只是包含了额外的字段,这些字段将被ZIP解压工具看做文件和目录一样的东西,而JAR工具则能识别他们。
为了使得JAR中的文件对于 Java有效,需要配置classpath。JAR文件将被当做一个字典对待。放置在jre/lib/ext或jre/lib/endorsed将被自动load.
2 元信息:配置文件和签名
jar 与zip差别不大,但是它必定包含了一个MANIFEST文件。
MANIFEST文件包含下面这一行:
Manifest-Version: 1.0
其他内容:样本
Name: com/elharo/awt/Filmstrip.class
Java-Bean: true
Last-modified: 09-07-2005
Depends-On: com/elharo/io/StreamCopier.class
Brad: Majors
Digest-Algorithms: MD5
MD5-Digest: XD4578YEEIK9MGX54RFGT7UJUI9810
3 JAR工具
jdk提供了简单的命令行工具JAR
4 java.util.jar包
5 JarFile 和 JarEntry
JarFile和ZipFile很相似,但是多了两个对于Jar才有的特性方法
public JarEntry getJarEntry(String name)
public Manifest getManifest( ) throws IOException
JarEntry对比ZipEntry也多了两个方法:
public Attributes getAttributes( ) throws IOException
public Certificate[] getCertificates( )
6
Attributes
Attributes 是一个特殊类型的Map
7 Manifest
可将Manifest看做一个额外的字段
8 JarInputStream 和 JarOutputStream
输入流可以读取Manifest,输出流可以设置Manifest.
9 Pack200
Java5 引入的新的格式,用于压缩jar文件。