前端之家收集整理的这篇文章主要介绍了
是否有一个Java库从AST生成类文件?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
This page描述了如何使用javac中的
代码生成器
生成代码,因为我可以构建一个AST(使用我写的单独的解析器).该技术涉及编辑javac的源
代码,以基本上绕过Java解析器,以便可以将自己的AST提供给
代码生成器.这可以工作,但我希望以稍微更清洁的方式做到这一点.我想将javac的
代码生成部分作为库的项目包含在我的项目中,所以我可以使用它来
生成代码,而不会带来javac源
代码的其余部分.
有没有办法这样做与javac,还是有一个更好的图书馆?
此外,请随意更改问题标题.我不能想到一个更好的一个,但它有点模糊.如果您建议编辑更好的标题,我会接受.
我想你可能感兴趣的是一个像
BCEL(ByteCode Engineering Library)这样的java库,
当我在编译器构建课程时,我玩了一遍,基本上它有一个很好的包装器,用于生成常量池,将一个名为Bytecode的指令插入到一个方法中,然后完成后,您可以加载类在运行时使用自定义类加载器,或以正常方式将其写入文件.
使用BCEL,应该比较容易从语法树到java字节码,尽管有点乏味,但是在某些情况下,您可能只想使用BCEL来生成未生成的字节码而不构建树.
原文链接:https://www.f2er.com/java/122517.html