2010-02-04 7 views

risposta

10

Aprire il file con JarFile e quindi chiamare getManifest() per ottenere il Manifest. Successivamente è possibile accedere agli attributi in modo appropriato.

+0

Questo è ancora più flessibile. Grazie! – er4z0r

15

Molti dei valori nel MANIFEST.MF sono accessibili a livello di programmazione senza dover trovare e/o aprire il file jar stesso.

La classe java.lang.Package fornisce l'accesso al ImplementationTitle, ImplementationVendor, ImplementationVersion, SpecificationTitle, SpecificationVendor e il SpecificationVersion.

informazioni sulle classi firmati può essere trovata utilizzando la classe CodeSource, che può essere recuperato tramite Class.getProtectionDomain().getCodeSource()

+0

Grazie! Ti capita di sapere se questo è disponibile anche per Android? – er4z0r

+0

Personalmente non lo so, ma sembra proprio questo: http://developer.android.com/reference/java/lang/package-summary.html –

+0

Grazie. L'ho controllato di nuovo e ho scoperto che la soluzione di Jon offre maggiore flessibilità ed è disponibile anche su Android. – er4z0r

5

Ecco un semplice example di leggere gli attributi principali di manifesti di un JAR in situ. È utile per verificare ciò che è effettivamente lì.

+0

+1 per questo grazioso esempio – stacker

+0

E +1 da me :-) – er4z0r

4

Usa seguente modo per rilevare Jar esterno/SDK MANIFEST.MF Info. Potremmo utilizzare queste informazioni per rilevare la versione Jar ecc. Utilizzare 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(); 
    } 
Problemi correlati