我有时会面临 Java 中的依赖 hell 。这是一个常见的已知问题:库 A 在版本 2.5 中依赖于库 C,库 B 也依赖于 C,但在版本 2.6 中。然后我必须解决问题:两个版本的C库向后兼容吗?我可以在一个应用程序类路径中使用库 A、B 和 C 吗?或者我应该使用旧版本的 C 创建 A 的“阴影包”?
如果两个版本的C库不兼容并且我使用它,应用程序通常可以启动。但几小时或几天后就会出现“无此方法”异常!我想在应用程序启动之前检测这个问题,而不是在运行时。
问题是:是否存在一些工具可以列出类中所有使用的符号以及按类提供的所有符号?然后我可以创建脚本来检测已使用但丢失的符号...
最佳答案
javap
命令可以列出类定义的所有符号。
javap -c
命令将类使用的外部方法和字段显示为反汇编字节码中的注释。您也许可以取消选择它们。
关于java - 如何检测 Java 类路径中缺失符号的使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37322633/