有没有办法以编程方式获取当前java邮件api的版本?

时间:2017-10-06 08:17:49

标签: java email jar version

我需要在类路径中使用的当前java mail api jar的版本。

我无法使用
2.0.0

因为它在我们的生产环境中返回null,因为

  • 自定义类加载器(jarsafe)

  • 我们在发布部署产品中提取所有jar(包括邮件api和其他第三方jar /库),并将它们放入一个jar中,清单信息丢失。

mail api是否支持 System.getProperty 等方法?

1 个答案:

答案 0 :(得分:1)

如果没有别的办法可行,丑陋的解决方案可能是从classpath grep邮件api jar名称。它可能包含版本。

但是,如果您将所有罐子“阴影”到一个罐子,我认为这些信息也会从类路径信息中丢失,因为没有更多特定的jar用于邮件api。

猜猜

getPackage().getImplementationVersion()

使用属性文件/清单,阴影排除,因此返回null。

也许您可以检查创建阴影jar的过程。也许您可以添加一个复制版本的步骤,例如作为属性文件,您可以稍后阅读。

如果是关于已经“部署”的系统,那么上面就不再可能实现了,我认为程序化解决方案的选项很少。