gpt4 book ai didi

groovy - 从 IDEA 调试在 ScriptEngine 中运行的 Groovy 脚本

转载 作者:行者123 更新时间:2023-12-01 15:23:37 25 4
gpt4 key购买 nike

在我的应用程序中,我将类路径中的脚本文件加载到字符串中,然后将其传递到 ScriptEngine。但是,脚本文件中设置的断点不会触发。我怎样才能让它发挥作用?我使用 Intellij IDEA。

ScriptEngine engine = ...;
String script = FileUtils.readFileToString(file);
Bindings bindings = engine.createBindings();
Object result = engine.eval(script, bindings);

最佳答案

由于 ScriptEngine.eval() 方法仅将脚本作为 String 或作为通用 Reader,我不认为这是有可能实现的。 GroovyScriptEngineImpl 类将生成一个脚本名称并在运行时将其编译为一个类,这将使调试器很难(不可能?)知道哪些断点与正在运行的脚本相关联。

它可能不是适合您的解决方案,但如果您改为使用 GroovyShell 调用脚本,那么它几乎可以开箱即用。

例子:

File file = new File(scriptDir, "ScriptToRun.groovy");
Binding binding = new Binding();
Object result = new GroovyShell(binding).evaluate(file);

如果包不在根目录,请记住在脚本中设置正确的包。

关于groovy - 从 IDEA 调试在 ScriptEngine 中运行的 Groovy 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661384/

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