背景
在将应用程序打包时,你一定希望只向用户提供一个单独的文件,而不是一个包含大量类文件的目录结构,JAR(Java Archive):Java归档文件就是为此目的而设计的。
概念
JAR文件(Java归档,英语:Java ARchive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便分发Java平台应用软件或库。
特点
-
一个JAR文件既可以包含类文件,也可以包含诸如图像和声音等其他类型的文件。
-
JAR文件主要用来压缩和发布字节码文件,而且还用于部署和封装库、组件和插件程序,并且可以被像编辑器和JVM这样的工具直接使用。
-
JAR文件是压缩的,它使用了我们熟悉的ZIP压缩格式。它比普通zip文件多了一个META-INF文件夹,该文件夹下包含了一个MANFEST.MF文件,用来定义package相关的数据。
拓展知识:
我们知道,在面向对象的程序设计里,一个类是可以调用另外一个类的方法,只要把被调用的那个类引入到 classpath 下就可以。一个类当然好搞,但如果是很多类,都会被其他类重复使用到,并且可能有多个工程,其他开发者也需要,那么按类这个维度去加入 classpath 显然会很麻烦。这种情况就需要把这些可以被重复使用的类打包,统一提供给使用方。这种打包好的类,就是类库(Class Library)。类库是类的集合,可以被重复使用。
而在 Java 中,一般以 JAR 文件的方式提供类库。