如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,则这个 JAR 文件的内部目录结构为:
不要删掉,是证书,和校验数据,是部署信息。很多信息是存放类信息的文件夹,信息包,
用来描述该jar文件的信息的,程序的入口
test.jar
|-- META-INF
| `-- MANIFEST.MF
`-- test
`--Test.class
我们把MANIFEST中的配置信息进行分类,可以归纳出下面几个大类:
一. 一般属性
1. Manifest-Version
用来定义manifest文件的版本,例如:Manifest-Version: 1.0
2. Created-By
声明该文件的生成者,一般该属性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1
3. Signature-Version
定义jar文件的签名版本
4. Class-Path
应用程序或者类装载器使用该值来构建内部的类搜索路径
二. 应用程序相关属性
1. Main-Class
定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件。
三. 小程序(Applet)相关属性
1. Extendsion-List
该属性指定了小程序需要的扩展信息列表,列表中的每个名字对应以下的属性
2. <extension>-Extension-Name
3. <extension>-Specification-Version
4. <extension>-Implementation-Version
5. <extension>-Implementation-Vendor-Id
5. <extension>-Implementation-URL
四. 扩展标识属性
1. Extension-Name
该属性定义了jar文件的标识,例如Extension-Name: Struts Framework
五. 包扩展属性
1. Implementation-Title 定义了扩展实现的标题
2. Implementation-Version 定义扩展实现的版本
3. Implementation-Vendor 定义扩展实现的组织
4. Implementation-Vendor-Id 定义扩展实现的组织的标识
5. Implementation-URL : 定义该扩展包的下载地址(URL)
6. Specification-Title 定义扩展规范的标题
7. Specification-Version 定义扩展规范的版本
8. Specification-Vendor 声明了维护该规范的组织
9. Sealed 定义jar文件是否封存,值可以是true或者false (这点我还不是很理解)
六. 签名相关属性
签名方面的属性我们可以来参照JavaMail所提供的mail.jar中的一段
Name: javax/mail/Address.class
Digest-Algorithms: SHA MD5
SHA-Digest: AjR7RqnN//cdYGouxbd06mSVfI4=
MD5-Digest: ZnTIQ2aQAtSNIOWXI1pQpw==
这段内容定义类签名的类名、计算摘要的算法名以及对应的摘要内容(使用BASE64方法进行编码)
分享到:
相关推荐
Web-Inf和Meta-Inf详解 Web-Inf和Meta-Inf是两种常见的配置文件,在Java Web应用程序中扮演着重要的角色。下面我们将详细介绍Web-Inf和Meta-Inf的作用、结构和应用。 Web-Inf Web-Inf是一种配置文件,主要用于...
### JAR命令与JAR包详解 #### 一、JAR包概述 JAR(Java ARchive)包是Java平台特有的一种压缩文件格式,主要用于将多个Java类文件和其他资源文件打包成一个单独的文件。它类似于常见的ZIP格式,但具有更高级的功能...
### JAR文件包及jar命令详解 #### 一、JAR文件包概述 JAR(Java Archive)文件包是Java程序开发中常见的打包形式之一,主要用于封装Java应用程序及其依赖资源,便于程序的分发和使用。它本质上是ZIP格式的一个特例...
JAR文件实质上是一个ZIP压缩格式,但包含了一个特定的文件——`META-INF/MANIFEST.MF`,这是JAR文件的关键组成部分。 1. **JAR文件的结构** JAR文件的内部结构与ZIP文件相似,但多了一个`META-INF`目录,其中包含`...
Java Archive (JAR) 文件是Java平台上的一个特殊文件格式,用于封装多个类文件、资源文件和其他相关数据。JAR文件的主要目的是为了...通过阅读“JAR文件包及jar命令详解.pdf”,你可以更深入地学习这些概念和实践操作。
Java Archives(JAR)文件是一种Java特有的文档格式,类似于ZIP文件,但包含了一个META-INF/MANIFEST.MF文件,该文件是在生成JAR文件时自动创建的。JAR文件可以包含Java类、图片、音频、视频等多种类型的文件。 ...
此外,`META-INF`目录在JAR文件中通常包含元数据,如项目清单(MANIFEST.MF)文件,它定义了JAR的属性和依赖关系。在`commons-io-1.4.jar`中,`META-INF`可能包含了库的版本信息、版权声明等。 总的来说,理解Java...
### 制作可执行的JAR文件包及jar命令详解 在Java开发中,将多个类文件、资源文件以及依赖库打包成一个可执行的JAR(Java Archive)文件是常见的需求,尤其对于构建独立运行的应用程序尤为重要。本文将深入探讨如何...
在实际开发中,我们还会遇到一些高级用法,比如使用META-INF服务配置文件来实现服务发现,或者利用JAR归档的压缩特性来减小资源占用。此外,Spring框架的BOOT-INF目录结构,使得JAR文件可以自包含所有运行依赖,形成...
JAR文件通常有一个META-INF目录,其中存放配置数据,如MANIFEST.MF(定义扩展和包的相关信息)、INDEX.LIST(加速类加载)、签名文件(xxx.SF和xxx.DSA)等。 **jar工具** Java Archive Tool(jar工具)是Java ...
它基于 ZIP 文件压缩标准,但与 ZIP 文件不同的是,JAR 文件包含了一个特殊的 `META-INF/MANIFEST.MF` 文件,用于存储元数据,如程序的主要类名等。 **特点:** - **文件组织结构清晰:** JAR 文件中的所有类和资源...
### 可执行JAR包及JAR命令详解 在Java开发过程中,经常需要用到JAR(Java Archive)包来封装和管理代码、资源文件等。本文将深入探讨可执行JAR包的概念及其创建方法,并详细介绍`jar`命令的使用。 #### 1. JAR ...
创建`hello.jar`时不包含`MANIFEST.MF`文件和`META-INF`目录。 9. **使用`-C`选项** ``` jar cvfm hello.jarmymanifest.mf -Chello/ ``` 先切换到`hello`目录下,再执行JAR命令,这种方式避免了JAR包中包含...
### 生成JAR包步骤详解 #### 一、引言 在Java开发中,将项目打包成JAR(Java Archive)文件是一种常见的做法。JAR文件不仅方便部署和分发,还能有效地组织类文件和资源文件。本文将详细介绍两种常用的生成JAR包的...
manifest文件是jar包的核心组成部分之一,通常位于`META-INF`目录下,名为`manifest.mf`。它记录了jar包的基本属性,如主类名、创建者信息、版本号等。如果没有正确配置manifest文件,jar包可能无法正常运行。 示例...