古詩詞大全網 - 藝術簽名 - META-INF有什麽用?它跟WEB-INF有什麽區別?

META-INF有什麽用?它跟WEB-INF有什麽區別?

META-INF 存在程序入口相關信息, 每個jar 都會有這個文件夾,裏面的 MANIFEST文件 記錄這些信息

WEB-INF 使用web 項目才會有這個文件夾,普通的 j2se項目 是沒有這個文件夾的

我們把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方法進行編碼)