zoukankan      html  css  js  c++  java
  • MANIFEST.INF!JAR规范中

    MANIFEST.INF!JAR规范中 META-INF 目录中内容心得。顺带整理了网上资料,提供地址

    标签: jarjava产品sunantapache
     分类:
     

    Java 产品打包成 JAR 文件,其中会在 META-INF 目录下边存在声明文件 MANIFEST.MF 。此文件内容为

    KEY: VALUE ,这样的一行行内容。以下整理总结了各种标准规范中指定的 KEY 含义。


    Manifest-Version
        必有,但应该不用指定
    Ant-Version
        如果使用 Ant 的话,会由 Ant 自己加进来
    Created-By: 1.6.0-b105 (Sun Microsystems Inc.)
        如果使用 Ant 的话,会自动增加一个 Sun 的版本
    Built-By
        编译的人名,最好能是英文吧……
    Extension-Name
        Jar文件的标识。如果 Java 程序包符合规范的话,包(package)名应该符合这样的规则。
        域名反序.项目名甲.模块名甲.xxx
        比如一个完整类全名:cn.spads.soccerms.data.dao.RamMatchDao
        如果是一个模块封装成 .jar 的话,会存在其它任何 .jar 包都绝不可能出现这样的包:
        cn.spads.soccerms.data.*
        于是,可以认为 cn.spads.soccerms.data 是当下这个 .jar 包所独有的 Java 类包名前缀。
        于是用词作为 .jar 文件的唯一标识,非常合适。
    Name
        签名用的“姓名”,推荐将产品名称放在这里,或者是产品模块的名称。
    Comment
        注释,对产品的说明
    Specification 和 Implementation
        Specification 是标准。比如 Servlet 标准,可能还有 JDBC 标准。
        Implementation 是针对这个标准的产品。
        如果没有特别的名字,其中 -Title 可以用和 Name 一致的内容,比如 Spads Soccer Management
        具体来说,有通用的 TitleVersion 和 Vendor ;
        还有 Implementation-Vendor-Id 和 Implementation-URL
    Sealed

        只有 true 和 false 二种值。
        其中 true 意味着此 .jar 包拒绝别的 .jar 包里边的程序直接加载当前 .jar 包里边的类。
        对于组件型 .jar 包,应该是 false ;对于封装的 Java 应用,可以考虑用 true 。
    Class-Path
        每个类路径用空格分隔,同时换行的话要以空格作为行首第一个字符。
        此类路径的基准是当前 .jar 文件所在目录。类路径应该是以此为基准的相对路径。
        比如存在文件结构:
        SoccerMS [目录]
            soccer-ms-1.1.0.jar
            lib [目录]
                mysql-connector-java-5.1.18-bin.jar
                postgresql-9.1-901.jdbc4.jar
        那么 soccer-ms-1.1.0.jar 中 MANIFEST.MF 
    Main-Class
        一定要写类全名。此类中应包含 static public void main(String[] xxx) 方法,即主方法。
        然后可以通过命令行的 java -jar xxxx.jar 来运行 .jar 文件。


    实际操作中,一个 .jar 包很可能实现了很多规范。于是 MANIFEST.MF 会有如下集中的段落:
    [html] view plain copy
     
     print?
    1. ############ 第 1 份规范 ###########  
    2. Specification-Title: Java API for XML Processing  
    3. Specification-Vendor: Sun Microsystems Inc.  
    4. Specification-Version: 1.3  
    5.   
    6. Name: org/apache/xalan/  
    7. Comment: Main Xalan engine implementing TrAX/JAXP  
    8. Implementation-Title: org.apache.xalan  
    9. Implementation-Version: @impl.version@  
    10. Implementation-Vendor: Apache Software Foundation  
    11. Implementation-URL: http://xml.apache.org/xalan-j/  
    12.   
    13. Name: org/apache/xpath/  
    14. Comment: XPath engine  
    15. Implementation-Title: org.apache.xpath  
    16. Implementation-Version: @impl.version@  
    17. Implementation-Vendor: Apache Software Foundation  
    18. Implementation-URL: http://xml.apache.org/xalan-j/  
    19.   
    20. ############ 第 2 份规范 ###########  
    21. Specification-Title: Runtime component of JCup  
    22. Specification-Vendor: Princeton University  
    23. Specification-Version: 0.10k  
    24.   
    25. Name: java_cup/runtime/  
    26. Comment: Runtime component of JCup  
    27. Implementation-Title: runtime  
    28. Implementation-Version: @impl.version@  
    29. Implementation-Vendor: Princeton University  
    30. Implementation-URL: http://www.cs.princeton.edu/~appel/modern/java/CUP/   



    对于多段规范被实现,每个规范被多个部分联合实现,可以参看下边的例子,是一个很完整的例子。
    http://www.oschina.net/code/explore/xalan/xalan-j_2_7_1/src/MANIFEST.MF


    另外可以去看看以下这篇帖子,其中讲到了手动编写 MANIFEST.MF 文件的一些心得。
    http://hi.baidu.com/lkdlhw_2000/blog/item/195519663df40920aa184ceb.html

    这篇帖子在网上广泛流传,为防止地址打不开,给几个格式比较好的转载:
    http://happysky.iteye.com/blog/391610
    http://blog.163.com/shucker_gzb/blog/static/64514485200951815712456/
  • 相关阅读:
    WCF 第十三章 可编程站点 为站点创建操作
    WCF 第十三章 可编程站点 所有都与URI相关
    WCF 第十二章 对等网 使用自定义绑定实现消息定向
    WCF 第十三章 可编程站点 使用WebOperationContext
    Using App.Config for user defined runtime parameters
    WCF 第十三章 可编程站点
    WCF 第十三章 可编程站点 使用AJAX和JSON进行网页编程
    WCF 第十二章 总结
    WCF 第十三章 可编程站点 使用WebGet和WebInvoke
    WCF 第十三章 可编程站点 URI和UriTemplates
  • 原文地址:https://www.cnblogs.com/developer-ios/p/6047269.html
Copyright © 2011-2022 走看看