我的Google foo让我失望。如果我有一些框架,可以基于注释做代码生成,我想同时支持构建时源代码生成,从而使开发人员可以提前编译它,也见得到生成的内容,甚至可能修改代码,而且还提供了运行时字节码一代更多动态的应用程序,例如基于插件的,应用程序,我可以使用ASM存储这两个任务,还是我真的需要两次设定此,有两个不同的库?如果可能的话,一个例子的链接将受到欢迎。我可以使用与ASM相同的“生成器”生成Java字节码和源代码吗?
2
A
回答
3
虽然这并没有直接回答这个问题,我建议使用Javassist了ASM。
用Javassist您通过生成的源代码开始时,你只需把它交给了Javassist编译器转成字节码,所以你现在有两个可用的,没有任何额外的技巧。另外,恕我直言,为Javassist生成源代码比搞乱字节码和ASM要容易得多。
1
对于构建时代码生成,我建议使用Eclipse的Java编译器,它不具有该开放的API,但它实际上是非常容易使用。你可以看看你如何在这里使用它:http://git.jetbrains.org/?p=mps/mps.git;a=tree;f=core/kernel/source/jetbrains/mps/compiler;h=6787147e3b36899574f042dd2132a4c08963670e;hb=HEAD(这段代码主要是由我编写的)。还有一个如何动态加载编译类的例子(MyClassLoader内部类)。
+0
我不确定这对我是否有用,但我给你+1的错字:“你可以*在这里起诉”LOL! – 2012-03-26 08:55:01
相关问题
- 1. 有什么工具可以生成ASM ClassWriter代码吗?
- 2. Java字节码生成
- 3. 用于Java的gRPC protobuf生成器 - 不同的生成代码
- 4. 我可以从PyInstaller生成的包中获取源代码吗?
- 5. 生成Java源代码和跳转
- 6. 的Java/Scala库生成Java源代码
- 7. Java代码生成器
- 8. 可以使用哪个库/程序来生成Java字节码?
- 9. Java代码生成
- 10. 使用ADO.NET生成代码后重组代码DbContext生成器
- 11. 如何使用宁静代码生成器生成代码(.ts)
- 12. 代码生成器与代码重构
- 13. 用于java代码的wsdl生成器
- 14. CGLIB AspectJ的字节代码生成
- 15. 自动生成Java源代码
- 16. Eclipse UML插件生成Java源代码
- 17. antlr - 从java源代码生成语法
- 18. 从java源文件代码生成
- 19. 从AST生成源代码
- 20. JPA的Java代码生成
- 21. 生成不生成代码
- 22. QR代码,可以用R生成?
- 23. 如何设计生成Python代码的代码生成器
- 24. XSD代码生成器空节点
- 25. 我可以从cmd生成的url运行php代码吗?
- 26. 使用Asm字节码生成器(ClassWriter)生成具有泛型类型的方法
- 27. Oracle和Eclipse编译器生成的java字节码差异
- 28. 代码生成 - XML到Java
- 29. 使用线框生成Java代码
- 30. 使用Java注释 - 生成代码
我可以看到你的观点。我前段时间看过Javaassist。如果没有人知道,那么这可能是我要做的。 – 2012-03-26 08:57:27
我又看了一遍,我不确定如何用Javassist做到这一点。您用来生成类文件的“源代码”可能包含诸如“$ cflow(...)”之类的东西,因此它不是真正的Java代码。我只能看到方法来保存CtClass中的编译类。你确定这是支持吗? – 2012-03-26 09:29:30
一天之后没有其他答案。 ASM不可能,所以你可以获得积分。 – 2012-03-27 11:00:18