做了一个jar包,为了方便管理在打包时加入了版本号
即:META-INF/MANIFEST.MF 文件中加入
Implementation-Version: 1.0.001
Specification-Version: 1.0.001
但是在web程序中
clazz.getPackage().getImplementationVersion()
clazz.getPackage().getSpecificationVersion()
取不到版本号。
最后发现,因为WEB-INF/classes 下面有相同的包名(clazz类在jar中),
默认情况下 clazz.getPackage(),优先取到class下面的包,所以无法获取版本号。
删除classes下面的包名即可取得版本号。

本文探讨了在Java Web应用程序中如何正确读取jar包内的版本信息。当项目中存在相同包名时,需要调整类加载顺序才能通过类对象获取正确的版本号。
2845

被折叠的 条评论
为什么被折叠?



