微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法

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

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

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

原文地址:https://www.jb51.cc/java/122517.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐