以编程方式检查.class文件

2022-09-03 14:43:02

我正在做一个项目,在这个项目中,我们正在Java服务和用其他各种语言编写的客户端之间进行大量的远程对象传输。鉴于我们当前的约束,我决定看看如何基于现有的Java类生成代码。基本上,我需要一个文件(或它们的集合)解析字节码以确定所有数据成员,也许还有getters/setters,然后编写一些可以用不同语言输出代码的东西来创建具有相同结构的类。.class

我不是在寻找像JAD这样的标准反编译器。我需要能够获取文件并创建其数据成员和方法的对象模型。这有可能吗?.class


答案 1

我使用过BCEL,发现它真的很尴尬。ASM要好得多。它非常广泛地使用访问者(这可能有点令人困惑),并且不创建对象模型。不创建对象模型是一种奖励,因为您要创建的任何模型都不太可能看起来像所有数据的字面解释。


答案 2

我过去使用过BCEL,它非常易于使用。那是几年前的事了,所以现在可能会有更好的东西。

Apache Jakarta BCEL


推荐