如何从* .war / META-INF / MANIFEST.MF文件中读取manifest.mf?

时间:2014-11-01 08:47:52

标签: java spring maven web-applications

使用maven get编译* .war文件,其中包含:

- META-INF
- - MANIFEST.MF
- WEB-INF
- - classes
- - lib
- - web.xml

使用java.util.jar.Manifest我想读取清单文件以从https://stackoverflow.com/a/21046257/1728511

中获取应用程序版本

Application.class.getResourceAsStream("/META-INF/manifest.mf")会返回null

Application.class.getResource( "" ).getFile()返回%WAR%/WEB-INF/lib/javax.ws.rs-api-2.0.jar!/javax/ws/rs/core/

使用Spring,我已经实现了ApplicationContextAware接口来获取ApplicationContext实例。

applicationContext.getClassLoader().getResourceAsStream( "" )会返回%WAR%/WEB-INF/classes

但我不需要WEB-INF,我需要META-INF目录。如何获得它?

1 个答案:

答案 0 :(得分:3)

你正在混合案件。您的META-INF包含MANIFEST.MF,但您正尝试在manifest.mf上打开资源流。

你必须改变

Application.class.getResourceAsStream("/META-INF/manifest.mf")

Application.class.getResourceAsStream("/META-INF/MANIFEST.MF")