【问题标题】:Is it possible to dynamically generate Java code strings from Xtend strings?是否可以从 Xtend 字符串动态生成 Java 代码字符串?
【发布时间】:2014-02-05 09:25:59
【问题描述】:

在 Java 中,可以在运行时从字符串中包含的源代码编译和加载类(例如,使用 javax.tools.JavaCompilerEclipseCompilerJanino)。这个过程可以完全在内存中,无需写入任何临时文件。

Xtend 语言的工作原理是将 Xtend 源代码转换为 Java 源代码,然后对其进行编译。 (如果我错了,请纠正我。)是否可以将包含 Xtend 源代码的字符串转换为包含 Java 源代码的字符串,以便我可以使用我最喜欢的动态编译器?我想在运行时将 Xtend 源代码转换为可加载的类*。如果可能,您需要调用哪些函数/类来执行此操作?

*Runtime = 无 Eclipse-IDE,无 JDK(仅限 JRE),仅使用 Xtend dependencies

【问题讨论】:

    标签: java xtend dynamic-compilation janino ecj


    【解决方案1】:

    Xtend 有一个 Maven 插件。它利用 XtendBatchCompiler。应该可以从纯Java、ANT等调用它。

    【讨论】:

    • 是的,我知道(不过,谢谢)。我希望有人能更详细地告诉我——这个 API 通过改变状态来工作(例如,“编译”函数返回一个布尔值,而不是编译代码),所以这些函数必须以某种顺序而不是其他顺序调用命令。此外,Maven 插件的默认模式会生成文件,我想全部在内存中完成(对于某些环境是必需的,例如 Google App Engine)。
    • 我认为您可以将文件系统用作临时存储来读取/写入/写入以供使用查看 org.eclipse.xtend.core.compiler.batch.Main.main(字符串[])
    • 也许你可以利用 Xtends 自己的测试中的 XtendCompilerTest
    猜你喜欢
    • 2021-02-18
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多