gpt4 book ai didi

java - 如何计算脚本中的 Groovy 字符串?

转载 作者:行者123 更新时间:2023-11-30 09:02:57 25 4
gpt4 key购买 nike

我实际上是在尝试使用 Groovy 创建 CLI。我在 Java 中设置了整个 JavaFX GUI,我希望能够输入 groovy 脚本以在 groovy 脚本中运行不同的功能。

例如,假设我有这个脚本:

void meow() {
println "walrus"
}

我希望能够输入“meow();”然后按 enter 并使用脚本作为引用对其进行评估。

我试过

shell.evaluate(inputStr, "src/Server/Scripting/CommandLineScript.groovy");

但无济于事;它只是出现错误:

groovy.lang.MissingMethodException: No signature of method: CommandLineScript.meow() is applicable for argument types: () values: []

我可以调用其他标准函数,例如:

shell.evaluate("println 'Hello World!';");

但我就是无法运行自己的方法...如何解决?

最佳答案

以下对我有用。

evaluate(new File("/Users/jellin/meow.groovy"))

我确实更改了 meow.groovy 文件以执行文件中的方法。

void meow() {
println "walrus"
}

meow()

一个问题是我没有看到将参数传递给调用脚本的方法。

我以前用过下面的,你可以传递参数作为绑定(bind)的一部分。

String script = "full path to the script"
GroovyScriptEngine gse = new GroovyScriptEngine()
Binding binding = new Binding();
Object result = gse.run(script, binding)

此外,您可以简单地将其他脚本作为类引用并对其执行 run 方法。

还有一个 AST 转换可用于让脚本扩展基本脚本。

更多信息请看这里

http://mrhaki.blogspot.com/2014/05/groovy-goodness-basescript-with.html

关于java - 如何计算脚本中的 Groovy 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com