我工作的地方,我们正在做大量的Java服务和客户用其它各种语言之间的远程对象转移的项目.鉴于我们目前的限制,我已经决定要看看它会采取基于现有的Java类代码.基本上,我需要一个.class
文件(或它们的集合)解析字节码,以确定所有的数据成员,或许getter/setter方法,然后写的东西,可以在不同的语言输出的代码来创建一个类具有相同的结构.
我不是在寻找像JAD这样的标准反编译器.我需要能够获取.class
文件并创建其数据成员和方法的对象模型.这有可能吗?
我使用过BCEL,发现它真的很尴尬.ASM要好得多.它非常广泛地使用访问者(这可能有点令人困惑)并且不会创建对象模型.不创建对象模型是一个奖励,因为您想要创建的任何模型都不太可能看起来像是对所有数据的字面解释.