我从java2s.com下载了servlet-api.jar的副本。我怎样才能知道它是什么版本?该网站上没有相关信息。
编辑
啊,抱歉。我应该列出当我双击我获得的jar文件中的MANIFEST.MF文件时,WordPad输出的内容:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)
你可以看到它并没有告诉我版本号,因此我才会问这个问题。
使用以下代码片段:
<%= session.getServletContext().getMajorVersion() %>.
<%= session.getServletContext().getMinorVersion() %>
您可以从 META-INF 获取它,您可以使用 WinRAR 或类似的压缩工具探索 jar 文件的内容。
Name: javax/servlet/
Specification-Title: Java API for Servlets
Specification-Version: 2.4
就我个人而言,我更喜欢从Maven仓库下载jar包。
jar xf servlet-api.jar META-INF/MANIFEST.MF
例如,随Tomcat一起提供的版本2.4的清单如下所示
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.2
Created-By: 1.4.2_06-b03 (Sun Microsystems Inc.)
Name: javax/servlet/
Specification-Title: Java API for Servlets
Specification-Version: 2.4
Specification-Vendor: Sun Microsystems, Inc.
Implementation-Title: javax.servlet
Implementation-Version: 2.4.public_draft
Implementation-Vendor: Apache Software Foundation
$ unzip -q -c /opt/tomcat/apache-tomcat-6.0.32/lib/servlet-api.jar META-INF/MANIFEST.MF | grep '^Specification-Version'
=产生=> Specification-Version: 2.5
(注意(给OP):servlet-api * .jar
通常不会与服务器本身分开“下载”; 因此,人们应该“知道”tomcat 6.0实现了servlet-api 2.5; jar本身可以被称为任何东西(就像glassfish的情况一样)) - michael它基本上在您的JAR的MANIFEST文件中,位于/META-INF/MANIFEST.MF
下:
Name: javax/servlet/
Specification-Title: Java API for Servlets
Specification-Version: 3.0
Specification-Vendor: Sun Microsystems, Inc.
Implementation-Title: javax.servlet
Implementation-Version: 3.0.FR
Implementation-Vendor: Apache Software Foundation
对于跟随者来说,如果它在jnlp分发中,则可能有一个相应的“version.xml”文件,告诉您每个jar的版本。
servlet-api.jar
文件,不知道哪个是哪个。其中一个在Apache Tomcat 8文件夹中,另一个在我的Vaadin项目文件夹中。我知道Tomcat 8支持Servlet API 3.1,但是很想知道它们当前正在使用什么版本。同样的,对于Vaadin也是如此。复制.jar
文件,将.jar
重命名为.zip
,解压到文件夹中并读取清单文件是确定文件内容的快速方法。 - Basil Bourque