Java GroovyShell和类路径

Java GroovyShell和类路径,java,groovy,Java,Groovy,我开始使用groovy编程,我想知道何时使用GroovyShell(新文件(“script.groovy”).txt), 脚本类是否在类路径中看到依赖关系,我尝试了这个示例,它生成了以下错误 // main.groovy @Grapes([ @Grab(group='org.slf4j', module='slf4j-api', version='1.6.1'), @Grab(group='ch.qos.logback', module='logback-classic', v

我开始使用groovy编程,我想知道何时使用GroovyShell(新文件(“script.groovy”).txt), 脚本类是否在类路径中看到依赖关系,我尝试了这个示例,它生成了以下错误

// main.groovy

@Grapes([
    @Grab(group='org.slf4j', module='slf4j-api', version='1.6.1'),
    @Grab(group='ch.qos.logback', module='logback-classic', version='0.9.28')
])

import groovy.lang.GroovyShell;
import java.io.File;

new GroovyShell().evaluate(new File("C:\\Users\\Dev\\Desktop\\logger.groovy").text);

如果希望
logger.groovy
文件使用与
main.groovy
脚本相同的类加载器,则需要将其与
GroovyShell
构造函数一起传递。您可以通过调用
this.class.classloader
获取当前类加载器

@Grapes([
@Grab(group='org.slf4j',module='slf4j-api',version='1.6.1'),
@Grab(group='ch.qos.logback',module='logback-classic',version='0.9.28')
])
导入groovy.lang.GroovyShell
导入java.io.xml文件
新的GroovyShell(this.class.classLoader).evaluate(新文件(“logger.groovy”))
输出:

$ groovy main.groovy
16:17:11.325 [main] DEBUG HelloWorldSlf4j - Execute HelloWorld.
16:17:11.327 [main] INFO  HelloWorldSlf4j - Simple sample to show log field is injected.

我在编写问题GroovyShell(新文件(“script.groovy”).text.evaluate())时出错,请提前感谢您。如果您发现输入错误或代码错误,请不要在注释中“隐藏”您的问题。
Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:869)
    at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:979)
    at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:967)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.codehaus.groovy.transform.LogASTTransformation$AbstractLoggingStrategy.classNode(LogASTTransformation.java:346)
    ... 38 more
$ groovy main.groovy
16:17:11.325 [main] DEBUG HelloWorldSlf4j - Execute HelloWorld.
16:17:11.327 [main] INFO  HelloWorldSlf4j - Simple sample to show log field is injected.