我有两个罐子,Jar1用于编译,Jar2在编译时没有使用。但是Jar1和Jar2都存在于类路径中。
我尝试为Jar2找到类的引用,但没有找到应用程序中使用的任何类。
但是如果Jar1在运行时使用某些类的Jar2会怎样?
我怎样才能确定从库中删除Jar2以及Jar1在运行时使用它的类路径?
是否有任何可用的工具可以判断在运行时是否在100%担保的任何情况下都没有使用任何jar?
[小背景:我正在升级到更新版本的POI,之前的发行版有contrib.jar,现在这个jar在最近的版本中不存在。我在删除contrib.jar后尝试编译项目并成功编译。但我想更加确定从图书馆中删除这些不应该在运行时产生任何不利影响。]
此致 JE。
答案 0 :(得分:2)
1 - 关于“依赖查找工具”:
理论上,每个* .class文件都有一个常量池,可以在其中找到依赖项的名称。但是,代码可以使用反射并动态地组成类/接口的名称,因此找出一个jar是否依赖另一个jar来正常工作并不是一件容易的事。
2 - 关于您的具体案例:
事实上,你似乎不需要这种依赖;但如果你真的想要仔细检查,那么唯一的方法就是手工分析你项目的代码。即使你找到了一个依赖查找器,它的结果也不会100%可靠,因为我在第一点上已经解释过了。