7

有谁知道 Java 的工具(类似于 C# 的 codedom),它提供了一种将 Java 代码生成到 .java 文件的方法?

编辑:我正在构建一个平台,其主要目标是自动化操作。给出一些输入,我想为外部工具生成代码。所以它不是在运行时生成。我想生成并将其输出到实际文件。

4

5 回答 5

2

JET 可能已经过时(我没用过)JET 教程第 1 部分

代码生成中的更多 Eclipse插件

编辑:对不起,我不知道 codedom 以及这个工具意味着什么功能。

独立是FreemarkerVelocity参见这个例子

于 2010-04-12T17:00:54.143 回答
1

ABSE 和 AtomWeaver 形成了一个代码生成和模型驱动的开发框架,您可以在其中轻松实现您想要的。ABSE 是一种新方法,您可以在其中从较小的位(称为 Atom)组成代码生成器,而 AtomWaver 是一个简单的 IDE,可让您实现、操作和使用生成器模型。

它还允许非程序员构建程序/配置/任何东西,由已经构建的部分(您之前准备好的原子)制成。

这个项目现在才刚刚公开发布,并且现在正在提供一个 alpha 版本。ABSE 是开放的,AtomWeaver 可免费用于个人和商业用途。

在此处获取更多信息:http ://www.abse.info (免责声明:我是项目负责人)

于 2010-04-14T17:20:13.653 回答
1

我使用ASM在字节码级别修改现有类或动态生成全新类都取得了一些成功。本教程以一种非常容易理解的方式引导您完成此操作。

ASM像大多数此类工具一样生成字节码而不是源代码。这样做的原因是,如果您想从程序中动态生成和执行新代码,从历史上看,调用 Java 编译器并不是直接的。因此,生成和使用字节码通常比源代码更容易。

如果您需要在程序中立即生成和运行代码,我建议您使用字节码操作工具。如果您只需要 Java 源代码,我会推出自己的代码生成器,它采用我的输入格式并生成代码。您可能想寻找一个框架来帮助您解决此问题,但由于源文件只是文本,通常自己创建它同样容易,特别是如果您有自定义输入格式。

于 2010-04-12T16:59:30.890 回答
0

我不确定你真正需要什么,但看看javassist。是你要找的东西吗?

于 2010-04-13T22:11:11.307 回答
0

您可以尝试使用现有语法(例如来自 ANTLR)并构建 AST。然后从 AST 生成代码。这应该比简单的模板更健壮。对于中间的事情,我建议 Terence Parr 关于StringTemplate的(令人大开眼界的)谈话。(对不起,手头没有谈话的链接)

于 2010-04-13T12:36:34.780 回答