如何查看jar包的版本號?

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

jar包根目錄里的META-INF目錄下的MANIFEST.MF文件里一般有會記錄版本信息,可以到這個文件里查看?
? 打開Java的JAR文件我們經常可以看到文件中包含著一個META-INF目錄,這個目錄下會有一些文件,其中必有一個MANIFEST.MF,這個文件描述了該Jar文件的很多信息,下面將詳細介紹MANIFEST.MF文件的內容,先來看struts.jar中包含的MANIFEST.MF文件內容:?
Manifest-Version: 1.0?
Created-By: Apache Ant 1.5.1?
Extension-Name: Struts Framework?
Specification-Title: Struts Framework?
Specification-Vendor: Apache Software Foundation?
Specification-Version: 1.1?
Implementation-Title: Struts Framework?
Implementation-Vendor: Apache Software Foundation?
Implementation-Vendor-Id: org.apache?
Implementation-Version: 1.1?
Class-Path:? commons-beanutils.jar commons-collections.jar commons-digester.jar commons-logging.jar commons-validator.jar jakarta-oro.jar struts-legacy.jar?
如果我們把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方法進行編碼)?
七.自定義屬性?
除了前面提到的一些屬性外,你也可以在MANIFEST.MF中增加自己的屬性以及響應的值,例如J2ME程序jar包中就可能包含著如下信息?
MicroEdition-Configuration: CLDC-1.0?
MIDlet-Name: J2ME_MOBBER Midlet Suite?
MIDlet-Info-URL: http://www.javayou.com/?
MIDlet-Icon: /icon.png?
MIDlet-Vendor: Midlet Suite Vendor?
MIDlet-1: mobber,/icon.png,mobber?
MIDlet-Version: 1.0.0?
MicroEdition-Profile: MIDP-1.0?
MIDlet-Description: Communicator?
關鍵在于我們怎么來讀取這些信息呢?其實很簡單,JDK給我們提供了用于處理這些信息的API,詳細的信息請見java.util.jar包中,我們可以通過給JarFile傳遞一個jar文件的路徑,然后調用JarFile的getManifest方法來獲取Manifest信息。?
更詳細關于JAR文件的規范請見?
http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html?
中文說明?

?

?

http://www-900.ibm.com/developerWorks/cn/java/j-jar/

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450325.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450325.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450325.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA中的toString()方法的用法

toString是Object類的方法&#xff0c;所有類都從Object類繼承。如果你定義的類沒有覆蓋toString方法&#xff0c;則對象在調用toString方法時用的是Object類toString方法&#xff0c;返回的是“類名hashcode". System.out.println(obj)在參數是一個對象時&#xff0c;會首…

kotlin使用spring data jpa(一)

2019獨角獸企業重金招聘Python工程師標準>>> 簡單查詢 spring data jpa是spring全家桶成員之一&#xff0c;用于操作各種數據庫&#xff0c;下面寫一個查詢訂單的簡單示例 引入sqlserver驅動包及jpa所需包implementation(org.springframework.boot:spring-boot-star…

VC的函數修飾名

VC 中的修飾名(Decoration name) “C”或者“C”函數在內部&#xff08;編譯和鏈接&#xff09;通過修飾名識別。修飾名是編譯器在編譯函數定義或者原型時生成的字 符串。有些情況下使用函數的修飾名是必要的&#xff0c;如在模塊定義文件里頭指定輸出“C”重載函數、構造函數、…

You can‘t specify target table ‘XXX‘ for update in FROM clause

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 報錯如題&#xff0c;意思大致是&#xff1a;在一條 sql 語句中不能先查出來部分內容&#xff0c;再同時又對當前表作修改。 解決方法&…

牛客網——最簡真分數

題目描述 給出n個正整數&#xff0c;任取兩個數分別作為分子和分母組成最簡真分數&#xff0c;編程求共有幾個這樣的組合。輸入描述: 每組包含n&#xff08;n<600&#xff09;和n個不同的整數&#xff0c;整數大于1且小于等于1000。 輸出描述: 每行輸出最簡真分數組合的個數…

csvn(apache+svn)管理工具搭建

系統環境&#xff1a;centos7.4一、服務端下載這個文件并解壓&#xff08;如果打不開&#xff0c;請下方留言&#xff09;https://pan.baidu.com/s/1miwdBc81、安裝jdk,上傳到服務器上&#xff0c;解壓[rootslave2 opt]# tar -zxvf jdk-8u91-linux-x64.gz[rootslave2 opt]# vim…

java中程序執行順序

①在java中執行順序 一 靜態初始化塊 二 非靜態初始化塊 三 構造器 四 父類構造器 ② java中的賦值順序 一 靜態初始化塊直接賦值 二 非靜態初始化塊直接賦值 三 父類繼承的屬性已賦值 四 靜態變量聲明時賦值 五 成員變量聲明時賦值 六 構造器賦值 接下來我們用一個…

編程復雜性等級劃分

摘要&#xff1a;相信開發人員一定對初級、中級、高級軟件工程師這類詞匯很熟悉吧&#xff01;你們是否對編程進行過等級劃分&#xff1f;這個又是如何劃分的呢&#xff1f;本文作者把編程復雜性從簡到難化成27個等級&#xff0c;你同意這樣的劃分嗎&#xff1f;通常來說&#…

對于抽象類的理解

這是我個人對抽象類的理解&#xff0c;為什么要有抽象類&#xff0c;因為我們在寫某個類時&#xff0c;只能寫出大概的一些屬性和共性行為&#xff0c;并不能一下子寫下所體現的具體細節&#xff0c;如我們學到的一個例子&#xff0c;我們人用打印機&#xff0c;可我們只知道打…

Spring中基于Java的配置@Configuration和@Bean用法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Spring中為了減少xml中配置&#xff0c;可以聲明一個配置類&#xff08;例如SpringConfig&#xff09;來對bean進行配置。 一、首先&am…

【實數二分/前綴和維護】Best Cow Fences

Poj 2018 Best Cow Fences 實數二分前綴和維護 調了一晚上&#xff0c; 但發現沒什么注意事項orz 無輸出只因eps定義成了int型QAQ哭唧唧 #include<cstdio> #include<iostream> using namespace std; const int sz 100010; double eps 1e-5; int n, f; double a[s…

json回顯

第一種&#xff1a;用json的oData塞值 案例顯示&#xff1a; list頁面url帶值 //活動基本信息修改 function updateProject() {   var selectRow $$.getSingleSelectRow(listId, "請選擇你要操作的項目進行修改&#xff01;");   if(selectRow.activity_status&…

NoSuchElementException

在之前下項目的時候遇到這個.NoSuchElementException異常,當時我寫到一個大類的結尾。但是編譯器。從未報錯。然而在運行的時候出現了這樣的異常&#xff0c;非常頭疼 &#xff0c;一到運行時候就報異常&#xff0c;我就上網搜索了一下&#xff0c;才明白&#xff0c;這是我的剛…

東方程序員怎么看西方程序員

摘要&#xff1a;東方程序員與西方程序員&#xff0c;彼此心中是什么樣子呢&#xff1f;本文收集了東西方程序員對彼此的看法與各種印象&#xff0c;對于西方/東方程序員&#xff0c;你留有什么印象呢&#xff1f; 本文是作者根據StackExchange上的一個討論貼&#xff1a;東方程…

Android開發 - 掌握ConstraintLayout(一)傳統布局的問題

在傳統的Android開發中&#xff0c;頁面布局占用了我們很多的開發時間&#xff0c;而且面對復雜頁面的時候&#xff0c;傳統的一些布局會顯得非常復雜&#xff0c;每種布局都有特定的應用場景&#xff0c;我們通常需要各種布局結合起來使用來實現復雜的頁面。隨著ConstraintLay…

輸入流與輸出流的區別

stream結尾都是字節流&#xff0c;reader和writer結尾都是字符流兩者的區別就是讀寫的時候一個是按字節讀寫&#xff0c;一個是按字符。實際使用通常差不多。在讀寫文件需要對內容按行處理&#xff0c;比如比較特定字符&#xff0c;處理某一行數據的時候一般會選擇字符流。只是…

【Spring】Spring高級話題-@Enable***注解的工作原理

EnableAspectJAutoProxy 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 EnableAspectJAutoProxy注解 激活Aspect自動代理 <aop:aspectj-autoproxy/> 1 開啟對AspectJ自動代理的支…

IDEA項目找不到瀏覽器報錯的情況

調tomcat的時候&#xff0c;它會調用瀏覽器&#xff0c;瀏覽器關聯如果有問題&#xff0c;肯定是會報錯的 要是測試的時候&#xff0c;就是瀏覽器的問題&#xff0c;重新把瀏覽器裝一遍讓他自己重新關聯一下應該就行了轉載于:https://www.cnblogs.com/Koma-vv/p/10156478.html

c/c++經典面試試題及標準答案

下面的問題我想大部分c/c 程序員 都遇見過.如果沒有看過&#xff0c;草根IT特別推薦一下。 一、請填寫BOOL , float, 指針變量與“零值”比較的 if 語句。&#xff08;10分&#xff09;請寫出 BOOL flag 與“零值”比較的 if 語句。&#xff08;3分&#xff09;標準答案&#x…

微服務拆分

微服務拆分是做微服務架構很重要也很難的話題&#xff0c;很多時候&#xff0c;幾個服務是合還是拆在設計團隊內也很難達成共識。 當你糾結應該拆分和合并時我建議就先合并&#xff0c;等后面版本迭代需要時有必要再去做拆分。從系統發展的角度說&#xff0c;很多平臺也都是從單…