我需要在类路径中使用的当前java mail api jar的版本。
我无法使用2.0.0
因为它在我们的生产环境中返回null,因为
自定义类加载器(jarsafe)
或
mail api是否支持 System.getProperty 等方法?
答案 0 :(得分:1)
如果没有别的办法可行,丑陋的解决方案可能是从classpath grep邮件api jar名称。它可能包含版本。
但是,如果您将所有罐子“阴影”到一个罐子,我认为这些信息也会从类路径信息中丢失,因为没有更多特定的jar用于邮件api。
猜猜
getPackage().getImplementationVersion()
使用属性文件/清单,阴影排除,因此返回null。
也许您可以检查创建阴影jar的过程。也许您可以添加一个复制版本的步骤,例如作为属性文件,您可以稍后阅读。
如果是关于已经“部署”的系统,那么上面就不再可能实现了,我认为程序化解决方案的选项很少。