11
votes

Java - quelle version était un fichier .jar a également été construit?

Y a-t-il un moyen de trouver la version JDK utilisée pour construire un fichier .jar?


0 commentaires

4 Réponses :


10
votes

La plupart des pots sont construits à l'aide de l'outil "JAR" fourni emballé avec le JDK.

Dans le JDK de Sun, l'outil "JAR" fourni ajoutera une ligne "créée par" dans le fichier méta-inf / manifest.mf intégré.

Cette ligne spécifiera la version du JDK qui a créé le pot (dans mon cas »créé: 1.6.0_17 (Sun Microsystems inc.)")

D'autres vendeurs Java ont tendance à faire la même chose.


1 commentaires

La tâche des fourmis utilise-t-elle l'outil JAR en interne? Parce que je pense que plus de fichiers Jar sont construits avec fourmi que via l'outil de ligne de commande.



7
votes

Dans le manifeste de pots.mf Il peut y avoir une propriété Build-JDK qui devrait être ce que vous recherchez.


2 commentaires

Je viens de jarer quelques fichiers de classe et matrise-jdk ne figure pas du tout dans le fichier manifeste.mf.


Mmm, vous avez peut-être raison. Je regarde un pot avec Create-par: Apache Maven. Les documents semblent être d'accord avec vous cependant.



11
votes

Ce n'est pas possible de manière fiable, car vous n'avez même pas besoin d'un JDK pour construire un fichier JAR - il s'agit simplement d'un fichier zip avec les classes et un fichier manifeste à l'intérieur.

Ce que vous pouvez découvrir est la version de Le format de fichier de classe est utilisé. La principale version de version mappe des versions MajorJDK: P>

J2SE 6.0 = 50 (0x32 hex)
J2SE 5.0 = 49 (0x31 hex)
JDK 1.4 = 48 (0x30 hex)
JDK 1.3 = 47 (0x2F hex)
JDK 1.2 = 46 (0x2E hex)
JDK 1.1 = 45 (0x2D hex)


2 commentaires

Bien que tout ce que vous dites est correct, cela vous indique vraiment quel compilateur compilait vos cours, pas ce que Bocal outil jar-ed vos cours. La plupart du temps, on supposerait qu'ils viennent de la même boîte à outils.


La réponse Stackoverflow.com/a/3313839/2776843 est beaucoup mieux. Vérifiez cela aussi.



9
votes

Vous pouvez extraire les fichiers de classe du fichier JAR et utiliser la commande suivante: xxx

doit vous donner le numéro de version des fichiers de classe.


0 commentaires