Les valeurs définies dans MANIFEST.MF peuvent-elles être consultées par programme?

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