2010-02-04 4 views

ответ

10

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

+0

Это еще более гибкое решение. Спасибо! – er4z0r

15

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

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

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

+0

Спасибо! Вы случайно не знаете, доступна ли это для Android? – er4z0r

+0

Лично я не знаю, но похоже: http://developer.android.com/reference/java/lang/package-summary.html –

+0

Спасибо. Я проверил его снова и обнаружил, что решение Джона обеспечивает большую гибкость и доступно для Android. – er4z0r

5

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

+0

+1 для этого симпатичного примера – stacker

+0

И +1 от меня :-) – er4z0r

4

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