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

3
使用Maven获取编译后的*.war文件,其中包含:
- META-INF
- - MANIFEST.MF
- WEB-INF
- - classes
- - lib
- - web.xml

使用java.util.jar.Manifest,我想要读取清单文件并从中获取应用程序版本,就像在https://dev59.com/SGEi5IYBdhLWcg3wsN_c#21046257中所述。
但是,Application.class.getResourceAsStream("/META-INF/manifest.mf")返回nullApplication.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
你是否知道你的.war中的每个.jar都可以包含一个/META-INF - Dirk Lachowski
@DirkLachowski,那么它如何帮助我呢? - Mikhail Kopylov
1个回答

5
您混淆了大小写。您的 META-INF 包含一个 MANIFEST.MF 文件,但您正在尝试在 manifest.mf 上打开资源流。
您需要更改:
Application.class.getResourceAsStream("/META-INF/manifest.mf")

为了

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

谢谢!问题在于它是大小写敏感的。 - Kefirchiks
1
@Kefirchiks 没问题,欢迎随意点赞。 - Dirk Lachowski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接