java - 如何检测 Java 类路径中缺失符号的使用情况

标签 java

我有时会面临 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/

相关文章:

java - 销毁日期对象

java - Element.getStyle() 在 GWT 中不返回任何值

java - ssh连接关闭后通过java在后台执行bash脚本

java - 带注释和输入标记的 Struts2 表单验证

java - 使用 java lang 对象类型作为数据类型的 Avro 模式

java - 如何将 Spring SecurityContext 传递给 RestAssured

java - 作业: how to invoke a java method

java - 如果父类(super class)没有默认构造函数,为什么此 Java 代码中的子类有默认构造函数?

java - 失败 - 在 tomcat7 : War file "WhitePagesAddressLookup.war" cannot be uploaded if context is defined in server. xml 中出现错误

java - 类型不匹配 : cannot convert from List<String> to ArrayList<String>