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