2010-02-04 10 views

Respuesta

10

Abra el archivo con JarFile y luego llame al getManifest() para obtener el Manifest. Después de eso, puedes acceder a los atributos de manera apropiada.

+0

Esto es aún más flexible. ¡Gracias! – er4z0r

15

Se puede acceder a muchos de los valores en MANIFEST.MF mediante programación sin tener que encontrar y/o abrir el archivo jar en sí.

La clase java.lang.Package proporciona acceso al ImplementationTitle, ImplementationVendor, ImplementationVersion, SpecificationTitle, SpecificationVendor y la SpecificationVersion.

información acerca de las clases firmados se puede encontrar utilizando la clase CodeSource, que se puede recuperar a través de Class.getProtectionDomain().getCodeSource()

+0

¡Gracias! ¿Sabes por casualidad si también está disponible para Android? – er4z0r

+0

Personalmente no lo sé, pero parece que sí: http://developer.android.com/reference/java/lang/package-summary.html –

+0

Gracias. Lo revisé nuevamente y descubrí que la solución de Jon proporciona más flexibilidad y está disponible en Android también. – er4z0r

5

He aquí una sencilla example de la lectura de los principales atributos de manifiesto de un JAR in situ. Es útil para verificar lo que hay realmente allí.

+0

+1 para este bonito ejemplo – stacker

+0

y +1 de mí :-) – er4z0r

4

Usar la siguiente manera de detectar Jar externo/SDK MANIFEST.MF Info. Podríamos utilizar esta información para detectar la versión Jar, etc. Use 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(); 
    } 
Cuestiones relacionadas