Puis-je accéder aux valeurs définies dans un manifeste java à partir de code?
Ouvrez le fichier avec JarFile
, puis appelez getManifest()
pour obtenir le Manifest
. Après cela, vous pouvez accéder aux atsortingbuts de manière appropriée.
La plupart des valeurs du fichier MANIFEST.MF peuvent être consultées par programme sans avoir à rechercher et / ou ouvrir le fichier jar lui-même.
La classe java.lang.Package
fournit un access à ImplementationTitle
, ImplementationVendor
, ImplementationVersion
, SpecificationTitle
, SpecificationVendor
et SpecificationVersion
.
Des informations sur les classes signées peuvent être trouvées à l’aide de la classe CodeSource
, qui peut être récupérée via Class
.getProtectionDomain()
.getCodeSource()
Voici un exemple simple de lecture des principaux atsortingbuts d’un manifeste de JAR in situ . C’est pratique pour vérifier ce qui est réellement là.
Utilisez la méthode suivante pour détecter le fichier Jar / SDK externe MANIFEST.MF Info. Nous pourrions utiliser cette information pour détecter la version d’un pot, etc. Utilisez http://docs.oracle.com/javase/6/docs/api/java/util/jar/Manifest.html
public void getSDKInfo() { Package pkg = Manifest.class.getPackage(); Ssortingng specTitle = pkg.getSpecificationTitle(); Ssortingng vendor = pkg.getSpecificationVendor(); Ssortingng version = pkg.getSpecificationVersion(); }
Essayez la classe utilitaire com.jcabi.manifests.Manifests
partir de jcabi-manifestests . En utilisant cette classe, vous pouvez lire tous les fichiers MANIFEST.MF disponibles avec un seul support:
Ssortingng name = Manifests.read("Foo-Name");
Voir également cet article: http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html