当前位置:  开发笔记 > 编程语言 > 正文

类加载器问题 - 如何确定加载哪些库版本(jar文件)

如何解决《类加载器问题-如何确定加载哪些库版本(jar文件)》经验,为你挑选了2个好方法。

我刚刚解决了另一个*我 - 虽然 - 我正在使用这个版本的库 - 但显然是我的应用程序服务器 - 已经加载了一个旧版本的-this-library-*issue(叹气).

有没有人知道验证(或监控)您的应用程序是否可以访问所有相应的jar文件或加载的类版本的好方法?

提前致谢!

[PS 在我的视图中开始使用OSGi模块架构的一个很好的理由!]

更新:这篇文章也有帮助!通过将JBoss的类加载器写入日志文件,它让我了解了JBoss的类加载器.



1> Tom..:

如果您碰巧使用JBoss,则有一个MBean(类加载器存储库iirc),您可以在其中请求已加载某个类的所有类加载器.

如果所有其他方法都失败了,那么总会有'java -verbose:class',它将为每个正在加载的类文件打印jar的位置.



2> John M..:

如果您在jar清单中有适当的版本信息,则有检索和测试版本的方法.无需手动读取清单.

java.lang.Package .getImplementationVersion()和getSpecificationVersion()以及isCompatibleWith()听起来像是在做你正在寻找的东西.

您可以使用this.getClass().getPackage()以及其他方式获取Package.

java.lang.Package的javadoc没有为这些属性提供特定的清单属性名称.快速谷歌搜索在http://java.sun.com/docs/books/tutorial/deployment/jar/packageman.html上进行了搜索

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有