Je veux savoir quelle version de java le fichier jar que j'ai est disponible

Comment puis-je savoir quelle version de java le fichier jar dont je dispose est disponible?

Pour dire la vérité, le fichier jar lui-même n'a pas de version de compilation. Un fichier jar n'est qu'une archive de classe, de propriétés et d'autres fichiers. Par exemple, jar peut être considéré comme un parent de tar ou zip. Par conséquent, pour savoir si le fichier jar est disponible pour une version particulière de Java, ce n'est pas la version du fichier jar lui-même, mais avec quelle version de javac le fichier de classe contenu dans ce fichier jar a été construit. J'ai besoin de jeter un oeil.

Ici, commons-collections4-4.4.jar (Apache Commons Collections v.4.4) peut être utilisé à partir de quelle version comme exemple de la méthode d'investigation. Je vais enquêter si c'est le cas.

Tout d'abord, utilisez la commande jar pour extraire le contenu du fichier jar.

$ jar xf commons-collections4-4.4.jar

Vous devriez trouver plusieurs fichiers de classe stockés dans le fichier jar. Ici, nous utiliserons . / Org / apache / commons / collections4 / ArrayStack.class comme exemple.

$ find . -name "*.class"  | head -n1
./org/apache/commons/collections4/ArrayStack.class

J'aimerais savoir quelle version de javac . / Org / apache / commons / collections4 / ArrayStack.class a été construite, mais le moyen le plus rapide est d'utiliser la commande file. Dans ce cas, il est évident qu'il est construit avec Java 8.

$ file ./org/apache/commons/collections4/ArrayStack.class
./org/apache/commons/collections4/ArrayStack.class: compiled Java class data, version 52.0 (Java 1.8)

Utilisez javap dans un environnement sans la commande file.

$ javap -v ./org/apache/commons/collections4/ArrayStack.class | grep major
  major version: 52

javap est une commande pour assembler à rebours un fichier de classe, et si vous ajoutez l'option -v, des informations détaillées sont affichées et les informations de version y sont mélangées. Ceci est divisé par «grep». La valeur version majeure: 52 affichée ici pointe vers Java 8. Concernant la correspondance entre cette version majeure et la version Java, veuillez vous référer à la page suivante, qui est bien organisée → [Wikipedia: fichier de classe Java](https://en.wikipedia.org/wiki/ Java_class_file)

Recommended Posts

Je veux savoir quelle version de java le fichier jar que j'ai est disponible
Comment savoir quelle version Java d'un fichier de classe a été compilée
Je veux trouver la somme de contrôle MD5 d'un fichier en Java et obtenir le résultat sous forme de chaîne de caractères en notation hexadécimale.
Je veux savoir si la chaîne de caractères spécifiée est prise en charge par le code de caractère cible
Examiner la liste des polices disponibles dans AWS Lambda + Java
Je veux obtenir le nom de champ du champ [Java]. (Vieux ton d'histoire)
JAVA: jar, aar, affichez le contenu du fichier
Je veux var_dump le contenu de l'intention
Essayez Progate Free Edition [Java I]
[Java] Je souhaite calculer la différence par rapport à la date
[Java] Vérifiez la version JDK du fichier war construit
Je veux connaître la réponse de l'application Janken
Je souhaite afficher le nom de l'affiche du commentaire
[Java] Récupère le fichier dans le fichier jar quel que soit l'environnement
Je veux retourner la position de défilement de UITableView!
J'ai essayé de découvrir ce qui avait changé dans Java 9
Même si je souhaite convertir le contenu d'un objet de données en JSON en Java, il existe une référence circulaire ...
Générer et exécuter le fichier Jar du fichier Java appartenant au package
J'ai essayé de résumer les bases de kotlin et java
(´-`) .. oO (Je veux trouver facilement la sortie standard" Hello ".
Je souhaite modifier le paramètre de sortie du journal de UtilLoggingJdbcLogger
Je souhaite utiliser l'API Java 8 DateTime lentement (maintenant)
Je veux obtenir une liste du contenu d'un fichier zip et sa taille non compressée
Java: dont le problème est plus rapide, en flux ou en boucle
Comment modifier le contenu du fichier jar sans décompresser
[Java] Je veux vraiment connecter MySQL !!! ~ À propos de l'obtention du pilote JDBC et de l'emplacement du fichier JAR ~
[Ruby] Je souhaite inverser l'ordre de la table de hachage
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Je veux juger de la nécessité de tester en comparant les différences des fichiers de classe lors de la refactorisation de Java.
Comparaison des chaînes de version lorsque vous souhaitez brancher le traitement entre deux versions (implémentation Java)
Je veux rendre le cadre de la zone de texte rouge lorsqu'il y a une erreur de saisie
Je veux comprendre le flux des paramètres de demande de traitement Spring
Je veux revenir à l'écran précédent avec kotlin et java!
L'histoire de Collectors.groupingBy que je veux garder pour la postérité
Vous voulez savoir ce que Ruby n est la puissance de 2? (Jugement de puissance de 2)
[Eclipse] Je souhaite ouvrir le même fichier deux fois [Éditeur fractionné]
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Je veux limiter l'entrée en réduisant la plage de nombres
J'ai essayé de résumer les méthodes de Java String et StringBuilder
[Java] Je veux effectuer distinctement avec la clé dans l'objet
Je veux contrôler le message d'erreur par défaut de Spring Boot
J'ai créé un outil pour afficher la différence du fichier CSV
Je veux changer la valeur de l'attribut dans Selenium of Ruby
J'étais accro au paramètre API version min23 de registerTorchCallback
La version d'Elasticsearch que vous utilisez est-elle compatible avec Java 11?
Comment obtenir la longueur d'un fichier audio avec Java
Remplacez le contenu du fichier Jar
[Édition Java] Histoire de la sérialisation
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
[Servlet Java] La route de Senri est également une étape vers la première
Je veux afficher des images avec REST Controller de Java et Spring!
Je veux connaître le JSP du portlet ouvert lors du développement de Liferay
[Ruby] Je souhaite extraire uniquement la valeur du hachage et uniquement la clé
[Introduction à Java] J'ai essayé de résumer les connaissances que j'estime essentielles