是否有一个Java库从AST生成类文件?

This page描述了如何使用javac中的代码生成生成代码,因为我可以构建一个AST(使用我写的单独的解析器).该技术涉及编辑javac的源代码,以基本上绕过Java解析器,以便可以将自己的AST提供给代码生成器.这可以工作,但我希望以稍微更清洁的方式做到这一点.我想将javac的代码生成部分作为库的项目包含在我的项目中,所以我可以使用它来生成代码,而不会带来javac源代码的其余部分.

有没有办法这样做与javac,还是有一个更好的图书馆?

此外,请随意更改问题标题.我不能想到一个更好的一个,但它有点模糊.如果您建议编辑更好的标题,我会接受.

解决方法

我想你可能感兴趣的是一个BCEL(ByteCode Engineering Library)这样的java库,

当我在编译器构建课程时,我玩了一遍,基本上它有一个很好的包装器,用于生成常量池,将一个名为Bytecode的指令插入到一个方法中,然后完成后,您可以加载类在运行时使用自定义类加载器,或以正常方式将其写入文件.

使用bcel,应该比较容易从语法树到java字节码,尽管有点乏味,但是在某些情况下,您可能只想使用bcel生成生成的字节码而不构建树.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...