groovy - 如何在运行时编译 groovy 用户输入的脚本

标签 groovy

我想编译并执行用户在运行时(在 DSL 中)输入的一段 Groovy。这在 Groovy 中可能吗?如果是这样,最好的方法是什么?

最佳答案

您可以使用 GroovyClassLoader:

def userScript = '''
  (1..5).each {
    println 'X' * it
  }
'''

Class c = new GroovyClassLoader().parseClass( userScript )
c.newInstance().run()

或者您可以使用 documentation for integrating Groovy 中的任何其他方法.

关于groovy - 如何在运行时编译 groovy 用户输入的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10631418/

相关文章:

java - Maven包出现Ant BuildException : Invalid license info

jenkins - 如何在 jenkins-pipeline 中获取输入步骤输出

json - 如何将 JSONArray 转换为 Grails 中的列表?

html - Flying Saucer : convert an HTML document to PDF ignoring external CSS?

database - 有没有办法在 DataSource 配置中将时区设置为 UTC

intellij-idea - 如何在Groovy中将上下文传递给自定义定义的方法?

java - Groovy 深拷贝 json 映射

grails - Grails 2.0缺陷NoClassDefFound问题

java - 是否有更简洁/优雅的方式来格式化以下社会安全号码,如带或不带 Groovy 的字符串?

域类 : No signature of method exception 的 Grails 集成测试