`
gcq04552015
  • 浏览: 462092 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jar包详解和META-INF作用(转)

    博客分类:
  • java
阅读更多
如果我们使用 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详解 Web-Inf和Meta-Inf是两种常见的配置文件,在Java Web应用程序中扮演着重要的角色。下面我们将详细介绍Web-Inf和Meta-Inf的作用、结构和应用。 Web-Inf Web-Inf是一种配置文件,主要用于...

    JAR命令&JAR包详解.doc

    ### JAR命令与JAR包详解 #### 一、JAR包概述 JAR(Java ARchive)包是Java平台特有的一种压缩文件格式,主要用于将多个Java类文件和其他资源文件打包成一个单独的文件。它类似于常见的ZIP格式,但具有更高级的功能...

    JAR文件包及jar命令详解

    ### JAR文件包及jar命令详解 #### 一、JAR文件包概述 JAR(Java Archive)文件包是Java程序开发中常见的打包形式之一,主要用于封装Java应用程序及其依赖资源,便于程序的分发和使用。它本质上是ZIP格式的一个特例...

    JAR文件包详解,创建可执行jar

    JAR文件实质上是一个ZIP压缩格式,但包含了一个特定的文件——`META-INF/MANIFEST.MF`,这是JAR文件的关键组成部分。 1. **JAR文件的结构** JAR文件的内部结构与ZIP文件相似,但多了一个`META-INF`目录,其中包含`...

    JAR文件包及jar命令详解.rar

    Java Archive (JAR) 文件是Java平台上的一个特殊文件格式,用于封装多个类文件、资源文件和其他相关数据。JAR文件的主要目的是为了...通过阅读“JAR文件包及jar命令详解.pdf”,你可以更深入地学习这些概念和实践操作。

    制作可执行的JAR文件包及jar命令详解.doc

    Java Archives(JAR)文件是一种Java特有的文档格式,类似于ZIP文件,但包含了一个META-INF/MANIFEST.MF文件,该文件是在生成JAR文件时自动创建的。JAR文件可以包含Java类、图片、音频、视频等多种类型的文件。 ...

    commons-io-1.4.jar.zip_io流jar

    此外,`META-INF`目录在JAR文件中通常包含元数据,如项目清单(MANIFEST.MF)文件,它定义了JAR的属性和依赖关系。在`commons-io-1.4.jar`中,`META-INF`可能包含了库的版本信息、版权声明等。 总的来说,理解Java...

    制作可执行的JAR文件包及jar命令详解

    ### 制作可执行的JAR文件包及jar命令详解 在Java开发中,将多个类文件、资源文件以及依赖库打包成一个可执行的JAR(Java Archive)文件是常见的需求,尤其对于构建独立运行的应用程序尤为重要。本文将深入探讨如何...

    java学习之jar打包详解

    在实际开发中,我们还会遇到一些高级用法,比如使用META-INF服务配置文件来实现服务发现,或者利用JAR归档的压缩特性来减小资源占用。此外,Spring框架的BOOT-INF目录结构,使得JAR文件可以自包含所有运行依赖,形成...

    JAR文件详解

    JAR文件通常有一个META-INF目录,其中存放配置数据,如MANIFEST.MF(定义扩展和包的相关信息)、INDEX.LIST(加速类加载)、签名文件(xxx.SF和xxx.DSA)等。 **jar工具** Java Archive Tool(jar工具)是Java ...

    JAR文件详解和相关实例

    它基于 ZIP 文件压缩标准,但与 ZIP 文件不同的是,JAR 文件包含了一个特殊的 `META-INF/MANIFEST.MF` 文件,用于存储元数据,如程序的主要类名等。 **特点:** - **文件组织结构清晰:** JAR 文件中的所有类和资源...

    可执行jar及命令详解

    ### 可执行JAR包及JAR命令详解 在Java开发过程中,经常需要用到JAR(Java Archive)包来封装和管理代码、资源文件等。本文将深入探讨可执行JAR包的概念及其创建方法,并详细介绍`jar`命令的使用。 #### 1. JAR ...

    jar命令集合

    创建`hello.jar`时不包含`MANIFEST.MF`文件和`META-INF`目录。 9. **使用`-C`选项** ``` jar cvfm hello.jarmymanifest.mf -Chello/ ``` 先切换到`hello`目录下,再执行JAR命令,这种方式避免了JAR包中包含...

    生成jar包步骤

    ### 生成JAR包步骤详解 #### 一、引言 在Java开发中,将项目打包成JAR(Java Archive)文件是一种常见的做法。JAR文件不仅方便部署和分发,还能有效地组织类文件和资源文件。本文将详细介绍两种常用的生成JAR包的...

    jar包的运行文档

    manifest文件是jar包的核心组成部分之一,通常位于`META-INF`目录下,名为`manifest.mf`。它记录了jar包的基本属性,如主类名、创建者信息、版本号等。如果没有正确配置manifest文件,jar包可能无法正常运行。 示例...

Global site tag (gtag.js) - Google Analytics