¿Se puede acceder a los valores definidos en MANIFEST.MF mediante programación?

¿Puedo acceder a los valores definidos en un manifiesto de java desde el código?

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

Muchos de los valores en el MANIFEST.MF se puede tener acceso mediante programación sin tener que buscar y / o abrir el archivo jar en sí.

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

La información sobre las clases firmadas se puede encontrar usando la clase CodeSource , la cual puede ser recuperada vía Class .getProtectionDomain() .getCodeSource()

Aquí está un ejemplo simple de leer los atributos principales del manifiesto de JAR in situ . Es útil para revisar lo que realmente está allí.

Utilice la siguiente manera para detectar la información de JAR externo / SDK MANIFEST.MF. Podríamos usar esta información para detectar la versión de Jar, etc. Utilice 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(); } 

Pruebe la clase de utilidad com.jcabi.manifests.Manifests desde jcabi-manifests . Usando esta clase usted puede leer todos los archivos MANIFEST.MF disponibles con un forro:

 String name = Manifests.read("Foo-Name"); 

También, vea este artículo: http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html

  • Falta el archivo de manifiesto
  • Configuración persistente del nombre predeterminado en un proyecto de Android en Eclipse
  • Android - No se puede instanciar la actividad - ClassNotFound - Falla en un eclipse pero no en otro
  • Mantener el estado de la aplicación android utilizando alwaysRetainTaskState y lauchMode
  • Defina el tema de AdActivity en @android: style / Theme.Translucent para activar el anuncio intersticial de fondo transparente
  • Mi aplicación no aparece en las tablas
  • Diferencia entre uses-permission-sdk-23 y uses-permission?
  • El punto principal en android: ¿nombre realmente requerido?
  • Android - Problemas para iniciar la actividad correcta?
  • Iniciar otra actividad si la casilla está marcada
  • Fusión de manifiesto de Gradle de Android: reemplaza el atributo 'uses-permission' procedente de una biblioteca
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.