Java manifest.mf文件是否显示jar的版本? 简介

Java manifest.mf文件是否显示jar的版本? 简介,java,jar,specifications,manifest.mf,Java,Jar,Specifications,Manifest.mf,我已经创建了一个脚本,该脚本在应用服务器上的所有已安装应用程序中循环,用于查找WEB-INF/lib文件夹的每个应用程序。然后,对于lib文件夹中的所有第三方jar文件,我将根据只有一个实现版本pr.manifest.mf的假设来查找实现版本键及其值。到目前为止还不错,但是…有些应用程序在某种程度上依赖于XML,因此在lib文件夹中有JAR,如 xalan.jar xml-api.jar xersimpl.jar 问题 所以,我必须承认,我没有弄清楚:我应该通过读取manifest.mf-f

我已经创建了一个脚本,该脚本在应用服务器上的所有已安装应用程序中循环,用于查找WEB-INF/lib文件夹的每个应用程序。然后,对于lib文件夹中的所有第三方jar文件,我将根据只有一个实现版本pr.manifest.mf的假设来查找实现版本键及其值。到目前为止还不错,但是…有些应用程序在某种程度上依赖于XML,因此在lib文件夹中有JAR,如

  • xalan.jar
  • xml-api.jar
  • xersimpl.jar
问题 所以,我必须承认,我没有弄清楚:我应该通过读取manifest.mf-file中的单个条目来找到jar文件的版本吗

manifest.mf的示例 这是在其中一个应用程序中找到的xalan.jar文件的MANIFEST.MF内容的一部分。这表明编写一个应该能够知道所有jar文件版本的脚本是很困难的

Manifest-Version: 1.0
Created-By: 1.3.1 (IBM Corporation)
Main-Class: org.apache.xalan.xslt.Process
Class-Path: xercesImpl.jar xml-apis.jar serializer.jar

Name: org/apache/xalan/
Comment: Main Xalan engine implementing TrAX/JAXP
Specification-Title: Java API for XML Processing
Specification-Vendor: Sun Microsystems Inc.
Specification-Version: 1.3
Implementation-Title: org.apache.xalan
Implementation-Version: 2.7.0
Implementation-Vendor: Apache Software Foundation
Implementation-URL: http://xml.apache.org/xalan-j/

Name: org/apache/xpath/
Comment: XPath engine
Implementation-Title: org.apache.xpath
Implementation-Version: 2.7.0
Implementation-Vendor: Apache Software Foundation
Implementation-URL: http://xml.apache.org/xalan-j/

Name: org/apache/xml/
Comment: DTM implementation and utilities
Implementation-Title: org.apache.xml
Implementation-Version: 2.7.0
Implementation-Vendor: Apache Software Foundation
Implementation-URL: http://xml.apache.org/xalan-j/
事后思考 但是——也许我应该创建一个“黑名单”,忽略哪些jar,比如所有与XML相关的jar。我找到了这个链接,显示我无法通过查看manifest.mf-file找到xalan.jar的版本。相反,我需要获取Version类的输出

我应该通过读取manifest.mf-file中的单个条目来找到jar文件的版本吗

您可以通过这种方式找到版本号,但是JAR文件中的版本号是可选的。(事实上,即使是版本的概念也是“可选的”。Java中没有任何东西要求您对代码进行版本设置……尽管这无疑是一个好主意!)

您的“事后思考”想法当然看起来更简单,不过您需要查看相关规范来决定是否需要它

我应该通过读取manifest.mf-file中的单个条目来找到jar文件的版本吗

您可以通过这种方式找到版本号,但是JAR文件中的版本号是可选的。(事实上,即使是版本的概念也是“可选的”。Java中没有任何东西要求您对代码进行版本设置……尽管这无疑是一个好主意!)

您的“事后思考”想法当然看起来更简单,但您需要查看相关规范以决定是否需要使用它。

请看,它有一个实用程序类,可以帮助您一次读取类路径中可用的所有
MANIFEST.MF
,请看一看,它有一个实用程序类,可以帮助您一次性读取类路径中可用的所有
MANIFEST.MF