Java类包管理工具——jar

来源:互联网 发布:c语言苏小红第八章答案 编辑:程序博客网 时间:2024/06/05 10:36

基础概念
JAR文件格式以流行的ZIP文件格式为基础,用于将多个文件聚集为一个文件。区别于ZIP文件的地方,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被类似的javac和java这样的工具直接使用。在JAR中包含特殊文件,如manifests和部署描述,用来指示工具如何处理特定的JAR。
为创建、管理JAR文件,可以使用作为JDK一部分的jar命令行工具(存在于JDK的bin目录下)。

常见的命令行有以下几个
1. jar cf jar-file input-file-list 用一系列文件创建一个jar文件
2. jar cf jar-file dir-name 用一个目录创建一个JAR文件
3. jar cf0 jar-file dir-name 创建一个未压缩的JAR文件
4. jar uf jar-file input-file 更新一个JAR文件
5. jar tf jar-file 查看一个JAR文件内容
6. jar xf jar-file 提取一个JAR文件内容
7. jar xf jar-file archived-file 从一个JAR文件中提取特定的文件
8. jar i jar-file 未JAR文件生成索引文件
9. java -jar jar-file 运行一个打包为可执行JAR文件的应用程序

常见应用场景1—— 可执行的JAR文件
进入该目录使用javac命令编译这些文件。-d参数用于指定编译产生的.class文件存放的路径。以
-d参数编译后的.class文件将自动按包名为目录结构进行组织。
javac -d .*.java(注意空格)
新建一个文本文件令名MANIFEST后缀是.MF内容是
Manifest-Version: 1.0
Main-Class: com.MyMainClass

接着以jar cvfm com.jar MANIFEST.MF com
当前目录下生成com.jar文件
这里写图片描述
这里写图片描述
最后执行这个jar文件
java -jar com.jar
执行效果如图

这里写图片描述

执行成功。
常见应用场景2——jar文件的索引
如果一个应用程序的class文件分散在多个jar文件中,那么类装载器就是用一个简单的线性搜索算法搜索类路径中的每一个文件,这可能需要类装载器下载并打开多个jar文件,直到找到所要的类或者资源。对于大型的需要下载到客户端执行的网络应用程序(如Applet),这会导致启动缓慢、相应迟缓和浪费宽带。

从JDK1.3以后JAR文件格式开始支持JarIndex索引机制,以优化网络应用程序中类的搜索过程,特别是Applet,JarIndex机制收集在,Applet或者应用程序中定义的所有JAR文件的内容,并将这些信息存储到第一个JAR 文件中的素引文件中。下载了第一个JAR文件后,Appet类装收器将使用收集的目录信息高效地装教剩余的JAR文件。这个目录信息存储在根JAR 文件的META-NF目承中个名为INDEX.LIST的特定的简单文本文件中。
例如使用命令行jar i first.jar two.jar
意思是把第一个jar文件作为索引添加到first.jar中,这是first.jar文件中就多出了一个INDEX.LIST的文件。

原创粉丝点击