如何探索从哪些 JAR 加载哪些类?
2022-09-01 10:16:52
有没有办法确定在运行时从哪些 JAR 加载哪些类?
我敢肯定,我们以前都过JAR地狱。我已经在项目上遇到了这个问题很多故障排除。我想避免在 JAR 中找到某个类的所有实例,并在代码上使用消除过程,从而导致 CNFE 找到罪魁祸首。ClassNotFoundException
NoClassDefFoundError
任何分析或管理工具都会为您提供此类信息吗?
这个问题非常烦人,纯粹是因为在加载类时我们应该有这些信息。必须有一种方法可以到达它,或者记录它并找到它,但我不知道什么会这样做,对吧?
我知道OSGi和版本化捆绑包/模块旨在使这成为一个非问题...但它似乎不会很快消失。
注意:我发现这个问题是我的问题的子集,与从版本化jar加载的类有关。
与此相关的是,这篇文章解释了一种在JAR中(在当前目录下)或M2_REPO中搜索类的策略:JarScan,扫描所有子文件夹中所有JAR文件以查找特定类。
也有些相关,JBoss Tattletale