Java 我如何知道servlet-api.jar的版本?

Java 我如何知道servlet-api.jar的版本?,java,servlets,jar,Java,Servlets,Jar,我从java2s.com下载了servlet-api.jar的副本。我怎么知道它是什么版本?网站上没有参考资料 编辑 啊。道歉。我应该在双击jar中的MANIFEST.MF文件时列出写字板输出的内容: Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.5 Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.) 正如您所见,它没有告诉我版本,因此出现了这个问题。您可以从META-INF获得它,您可以使用w

我从java2s.com下载了servlet-api.jar的副本。我怎么知道它是什么版本?网站上没有参考资料

编辑

啊。道歉。我应该在双击jar中的MANIFEST.MF文件时列出写字板输出的内容:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)

正如您所见,它没有告诉我版本,因此出现了这个问题。

您可以从META-INF获得它,您可以使用win-rar或类似的存档UTIL来探索jar文件的内容

Name: javax/servlet/
Specification-Title: Java API for Servlets
Specification-Version: 2.4  

我个人更喜欢从maven repo下载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

它基本上位于JAR清单文件的
/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

使用以下代码段:

<%= session.getServletContext().getMajorVersion() %>.
<%= session.getServletContext().getMinorVersion() %>

对于追随者,如果它在jnlp发行版中,可能会有一个附带的“version.xml”文件,告诉您每个jar分别是什么版本。

您想如何处理这个jar文件?每当一个人抓到一个单独的文件时,我总是感到害怕,这个文件最初起源于一个(大型)实现,实际上应该/不能单独使用。我在玻璃鱼家族的继承人那里寻找罐子,但它不在那里。我还有其他问题要先解决,但我想知道是否需要使用迁移时在Tomcat中引用的JAR。为什么您想知道这一点?您是否在命令控制台中使用
javac
进行编译?在Glassfish中,ServletAPI位于
javaee.jar
中。顺便说一句,您可以在Java1.6之后的类路径中使用通配符
*
,这样您就可以只做
/path/to/appserver/lib/*
,而不是单独定义每个JAR。也不要混合使用API实现。确保您的
WEB-INF/lib
没有特定于servletcontainer的库。毕竟,这纯粹是无知和在黑暗中刺伤。我在你的博客上贴了一个答案。希望它能在你的脑海里打开一个灯泡:)谢谢你的投入,但说我无知是不礼貌的。我称之为学习。特别是关于这个问题,我在只处理Tomcat之前从未见过sun-web.xml,因为自动生成的一个引用了
DOCTYPE
中的servlet版本,我只是想把它弄对。请不要从不同的问题中推断内容。或者在shell中:
$unzip-q-c/opt/tomcat/apache-tomcat-6.0.32/lib/servlet-api.jar META-INF/MANIFEST.MF | grep'^Specification Version'
=yields=>
规范版本:2.5
(注意(操作):
servlet-api*.jar
通常不会“下载”与服务器本身分开;因此我们应该“只知道”tomcat 6.0实现了servlet api 2.5;jar本身可以调用任何东西(就像glassfish一样)(对不起,我刚刚意识到这是一个古老的问题;不确定为什么我发现它是一个最近提出的问题(标记为java)还有,为了让我能添加一些真正有建设性的东西,这是一种重复)这有什么问题?同样的问题在这里。我发现这是最简单的方式,我的问题是由于反对票。就我个人而言,我很抱歉没有理由去摆弄清单条目。谢谢拉维,我也觉得这是最简单的