Доступны ли значения, определенные в MANIFEST.MF программно?

Могу ли я получить доступ к значениям, определенным в манифесте Java из кода?

Откройте файл с помощью JarFile а затем вызовите getManifest() чтобы получить Manifest . После этого вы можете получить доступ к атрибутам соответствующим образом.

Многие из значений в MANIFEST.MF могут быть доступны программно без необходимости поиска и / или открытия самого файла jar.

Класс java.lang.Package предоставляет доступ к ImplementationTitle , ImplementationVendor , ImplementationVersion , SpecificationTitle , SpecificationVendor и SpecificationVersion .

Информация о подписанных classах может быть найдена с использованием classа CodeSource , который может быть .getProtectionDomain() через Class .getProtectionDomain() .getCodeSource()

Вот простой пример чтения основных атрибутов из манифеста JAR in situ . Это удобно для проверки того, что на самом деле существует.

Используйте следующий способ для обнаружения информации внешнего флага JAR / SDK MANIFEST.MF. Мы могли бы использовать эту информацию для обнаружения версии Jar и т. Д. Используйте 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(); } 

Попробуйте com.jcabi.manifests.Manifests class утилиты из jcabi-manifestests . Используя этот class, вы можете прочитать все доступные файлы MANIFEST.MF с одним слоем:

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

Также см. Эту статью: http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html

  • Как получить первый день текущей недели и месяца?
  • Создание арреалиста объектов
  • Переменная Java, помещенная в стек или кучу
  • Ошибка: (23, 17) Не удалось выполнить: junit: junit: 4.12
  • Проблемы с импортом проекта в Android Studio в отношении ActionBarSherlock
  • Доступ к файлам ресурсов на Android
  • Параллельная модификация Исключение: добавление в ArrayList
  • API 2.2 для Wi-Fi Wi-Fi
  • преобразование растрового изображения Java в байтовый массив
  • Ошибка MultiDex NoClassDefFound
  • Добавление пользовательских заголовков в запросы ресурсов WebView - андроид
  • Давайте будем гением компьютера.