2010-10-12 5 views
10

J'ai téléchargé une copie de servlet-api.jar de java2s.com. Comment puis-je savoir de quelle version il s'agit? Il n'y a pas de référence sur le site.Comment savoir quelle version de servlet-api.jar j'ai?

EDIT

Ah. Excuses. J'ai énuméré le contenu de la sortie de WordPad quand je double clic sur le fichier MANIFEST.MF dans le pot, je suis arrivé:

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

Comme vous pouvez le voir me dire na pas la version d'où la question.

+0

Que voulez-vous faire avec ce fichier JAR? Il me fait toujours peur chaque fois que l'on saisit un fichier * séparé * qui est originaire d'une (grande) implémentation et ne devrait en fait pas être utilisé séparément. – BalusC

+0

J'utilisais Tomcat 6 et migrais vers Glassfish 3. J'ai cherché dans la hiérarchie de Glassfish le pot et il n'était pas là. J'ai d'autres problèmes à résoudre en premier, mais je me demandais si j'avais besoin de rentrer dans les pots que je référenais dans Tomcat lorsque j'ai migré. – volvox

+0

Pourquoi voudriez-vous le savoir? Compilez-vous en utilisant 'javac' dans la console de commande? Eh bien, dans Glassfish, l'API Servlet se trouve dans 'javaee.jar'. Il est d'ailleurs bon de savoir que vous pouvez utiliser des caractères génériques '*' dans classpath depuis Java 1.6 pour que vous puissiez simplement faire '/ chemin/vers/appserver/lib/*' au lieu de définir chaque fichier JAR séparément. Ne mélangez pas non plus les implémentations d'API. Assurez-vous que votre 'WEB-INF/lib' est * gratuit * des bibliothèques spécifiques à servletcontainer. – BalusC

Répondre

11

vous pouvez l'obtenir à partir de META-INF, vous pouvez explorer le contenu du fichier jar en utilisant win rar ou de tels utilitaires d'archivage quelque chose comme.

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

Personnellement, je préfère maven repo pour télécharger jar de.

5

vous pouvez extraire le MANIFEST.MF à partir du répertoire META-INF de votre fichier jar en utilisant

jar xf servlet-api.jar META-INF/MANIFEST.MF 

le manifeste pour la version 2.4 qui vient avec tomcat ressemble à ceci par exemple

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 
+0

Ou dans le shell: '$ unzip -q -c /opt/tomcat/apache-tomcat-6.0.32/lib/servlet-api.jar META-INF/MANIFEST.MF | grep '^ Specification-Version'' = rendements => 'Spécification-Version: 2.5' (note (à OP):' servlet-api * .jar' n'est généralement pas "téléchargé" séparément du serveur lui-même, donc on devrait "juste savoir" que tomcat 6.0 implémente servlet-api 2.5, le pot lui-même pourrait être appelé n'importe quoi (comme c'est le cas w/glassfish) – michael

+0

(désolé, je viens de réaliser que c'était une question ancienne, je ne sais pas pourquoi je l'ai trouvé une question récemment posée (tagged java) aussi, juste pour que je puisse ajouter quelque chose de réellement constructif, c'est une sorte de doublon de http://serverfault.com/questions/384172/keeping-application-library-versions-in- synch-with-server) – michael

0

Il est essentiellement à l'intérieur de votre fichier MANIFESTE JAR sous /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 
10

utiliser l'extrait de code ci-dessous:

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

Quel est le problème avec ça? – Tires

+0

même question est ici. Je trouve que c'est la façon la plus simple –

+0

Ma question était due à des votes négatifs. Personnellement, j'affirme qu'il n'y a aucune raison de bidouiller avec des entrées manifestes. – Tires

0

pour les adeptes, si elle est dans une distro jnlp, il peut y avoir un fichier d'accompagnement « version.xml » qui vous indique quelles versions chaque pot est respectivement.

Questions connexes