(完整版)jar包是什么

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

什么是jar包

JAR(Java ARchive,Java 归档)是一种与平台无关的文件格式,可将多个文件合成一个文件。用户可将多个Java applet 及其所需组件(.class 文件、图像和声音)绑定到JAR 文件中,而后作为单个的简单HTTP(Hypertext Tranfer Protocal,超文本传输协议)事务下载到浏览器中,从而大大提高下载速度。JAR 格式也支持压缩,从而减小了文件的大小,进一步缩短下载时间。另外,applet 编写者也可在JAR 文件中用数字签名的方式签写各项以确认其来源。它用Java 编写,可与现有的applet 代码完全向后兼容且可充分扩展。

JAR 文件就是Java Archive File,顾名思意,它的应用是与Java 息息相关的,是Java 的一种文档格式。JAR 文件非常类似ZIP 文件——准确的说,它就是ZIP 文件,所以叫它文件包。JAR 文件与ZIP 文件唯一的区别就是在JAR 文件的内容中,包含了一个META-INF/MANIFEST.MF 文件,这个文件是在生成JAR 文件的时候自动创建的。

JAR文件是跨平台的,所以不必关心涉及具体平台的问题。除了可以包括声音和图像文件以外,也可以在其中包括类文件。

涉及因特网应用时,JAR文件显得特别有用。在JAR文件之前,Web浏览器必须重复多次请求web服务器,以便下载完构成一个“程序片”(Applet)的所有文件。除此以外,每个文件都是未经压缩的。但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。同时,由于采用了压缩技术,所以可在更短的时间里获得全部数据。另外,JAR文件里的每个入口(条目)都可以加上数字化签名(详情参考Java用户文档)。

一个JAR文件由一系列采用Zip压缩格式的文件构成,同时还有一张“详情单”,对所有这些文件进行了描述(可创建自己的详情单文件;否则,jar程序会为我们代劳)。在联机用户文档中,可以找到与JAR详情单更多的资料(详情单的英语是“Manifest”)。

jar实用程序已与Sun的JDK配套提供,可以按我们的选择自动压缩文件。请在命令行调用它

JAR 文件格式以流行的ZIP 文件格式为基础。与ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和JVM 这样的工具直接使用。在JAR 中包含特殊的文件,如manifests 和部署描述符,用来指示工具如何处理特定的JAR。

一个JAR 文件可以用于:

□用于发布和使用类库

□作为应用程序和扩展的构建单元

□作为组件、applet 或者插件程序的部署单位

□用于打包与组件相关联的辅助资源

JAR 格式允许您压缩文件以提高存储效率。

·传输平台扩展。Java 扩展框架(Java Extensions Framework)提供了向Java 核心平台添加功能的方法,这些扩展是用JAR 文件打包的(Java 3D 和JavaMail 就是由Sun 开发的扩展例子)。

·包密封。存储在JAR 文件中的包可以选择进行密封,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一JAR 文件中找到。

创建可执行JAR

创建一个可执行JAR 很容易。首先将所有应用程序代码放到一个目录中。假设应用程序中的主类是com.mycompany.myapp.Sample 。您要创建一个包含应用程序代码的JAR 文件并标识出主类。为此,在某个位置(不是在应用程序目录中)创建一个名为manifest 的文件,并在其中加入以下一行:

Main-Class: com.mycompany.myapp.Sample 然后,像这样创建JAR 文件:

jar cmf manifest ExecutableJar.jar application-dir

所要做的就是这些了,现在可以用java -jar执行这个JAR文件ExecutableJar.jar。

一个可执行的JAR 必须通过menifest 文件的头引用它所需要的所有其他从属JAR。如果使用了-jar 选项,那么环境变量CLASSPATH 和在命令行中指定的所有类路径都被JVM 所忽略。

库(lib)与jar包有什么区别啊?

答案1:library是类库,就是一堆.jar文件的集合.一般情况下都是若干个.class文件能实现一组功能,这时候便可以把这些.class文件打包成.jar文件.比如说当需要使用集合类的时候,咱们需要import java.uitl.*; 对应的就是一个jar包(.jar文件)它里面就是一堆.class文件。

答案2:library是一个库的集合,library可以包含多个jar文件,jar包是封装好的javaclass类。

看了上面的说明,不难理解:lib就是一堆jar包的集合、那么jar包里面肯定还有子包,子包里就是基本的单位类了

相关文档
最新文档