我试图Java字节代码解析成用于以后使用的中间数据结构。我偶然到ASM。它功能强大,稳定。不过,我困难的时候翻译的二进制指令返回到正常的Java表达和陈述。对我来说可能有人指出一个方向?

该交易数据结构可以是这样的:

ClassInfo
- FieldInfo
- MethodInfo
-- ForLoopStatement
-- WhileStatement
--- AssignmentExpression
--- FunctionCallExpression
...

基本上,它的无非java语言的抽象更多。

感谢您。

有帮助吗?

解决方案

目前DB4O我们使用的讽刺称为 BLOAT库以检索从方法体完全构造AST。它的工作不够好,对我们来说,但它不是基于ASM。

其他提示

为什么不留在Java字节码,因为它是,如果你需要一个人类可读的形式,简单地拆开呢?至少你的问题没有说清楚为什么Java字节码本身不能用于存储中间数据结构。

在正式的Java SDK版本有一个名为 javap的 其将字节码返回到Java源代码。同样的工作另一种选择是的 贾瓦德

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top