作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要在类路径中使用的当前 java 邮件 api jar 的版本。我不能使用
IMAPStore.class.getPackage().getImplementaionVersion()
因为它在我们的生产环境中返回 null,因为
自定义类加载器 (jarsafe)
或
我们提取发布部署产品中的所有 jar(包括邮件 api 和其他第 3 方 jar/库)并将它们放入一个 jar 中, list 信息就会丢失。
mail api是否支持System.getProperty等方法?
最佳答案
如果没有别的办法,丑陋的解决方案可能是从类路径中 grep 邮件 api jar 名称。它可能包含版本。
但是,如果您将所有 jar“隐藏”到一个 jar,我认为此信息也会从类路径信息中丢失,因为没有更具体的 jar 用于邮件 api。
猜猜
getPackage().getImplementationVersion()
使用阴影排除的属性文件/ list ,因此返回 null。
也许您可以检查创建阴影 jar 的过程。也许您可以在那里添加一个步骤,例如将版本复制为您以后可以阅读的属性文件。
如果它是关于已经“部署”的系统并且无法再实现,我猜编程解决方案的选项非常少。
关于java - 有没有办法以编程方式获取当前 java mail api 的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46601322/
我是一名优秀的程序员,十分优秀!