给定java类名和一对jar文件,在每个jar文件中查找父类名
我正在编写一个工具,用来确定系统升级时哪些类发生了变化。我的意见是: 1-与预升级系统一起使用的jar文件 2-升级后系统使用的jar文件 3-我关心的课程及其目的列表 资产初始化包1。我的资产。班 资产终止包1。赞成。班 等等
我想做的是能够加载新系统附带的jar和旧系统附带的jar,并确定给定类在更改后是否具有与更改前相同的父类。i、 e.如果在新系统资产初始化中 1-仍然是包装1。我的资产。阶级和 2-仍然是package0的扩展。通用软件集。阶级
我假设我可以使用反射,但我不确定如何确定每个jar中的给定类父类是什么,以查看它是否发生了更改
我的工具不一定直接(在运行时)使用JAR——事实上,除了作为系统更改分析的输入之外,不应该真正使用JAR
# 1 楼答案
虽然除了它的(单亲)父类之外,类可能还有很多重要的更改,但如果您真的只需要这些更改,我就不必为代码费心了,我只需要将两个JAR都放在一个带有JDK的系统上,并执行以下操作:
如果你想在“公共API”中寻找任何变化,完整的
javap
输出是一个好的开始# 2 楼答案
URLClassLoaders,
一个李>Class.getSuperClass()
,然后对每个父类调用getName()
李>