2010-02-04 6 views

Répondre

10

Ouvrez le fichier avec JarFile, puis appelez getManifest() pour obtenir le Manifest. Après cela, vous pouvez accéder aux attributs de manière appropriée.

+0

Ceci est encore plus flexible. Je vous remercie! – er4z0r

15

La plupart des valeurs de MANIFEST.MF peuvent être accédées par programme sans avoir à rechercher et/ou ouvrir le fichier jar lui-même.

La classe java.lang.Package donne accès à la ImplementationTitle, ImplementationVendor, ImplementationVersion, SpecificationTitle, SpecificationVendor et SpecificationVersion.

Informations sur les classes signées peuvent être trouvées en utilisant la classe CodeSource, qui peut être récupéré via Class.getProtectionDomain().getCodeSource()

+0

Merci! Savez-vous si c'est aussi disponible pour Android? – er4z0r

+0

Personnellement, je ne sais pas, mais il semble que ce soit: http://developer.android.com/reference/java/lang/package-summary.html –

+0

Merci. Je l'ai vérifié encore et trouvé que la solution de Jon fournit plus de flexibilité et est également disponible sur Android. – er4z0r

5

est ici simple example de lire les principaux attributs du le manifeste d'un JAR in situ. C'est pratique pour vérifier ce qui existe réellement.

+0

+1 pour ce joli exemple – stacker

+0

Et +1 de moi :-) – er4z0r

4

Utilisez comme suit pour détecter Jar externe/SDK MANIFEST.MF Infos. Nous pourrions employer cette information pour détecter la version de pot etc. Employer http://docs.oracle.com/javase/6/docs/api/java/util/jar/Manifest.html

public void getSDKInfo() { 
    Package pkg = Manifest.class.getPackage(); 
    String specTitle = pkg.getSpecificationTitle(); 
    String vendor = pkg.getSpecificationVendor(); 
    String version = pkg.getSpecificationVersion(); 
    }