Groovy 实例化类时找不到适合grab的类加载器

Groovy 实例化类时找不到适合grab的类加载器,groovy,classloader,jodatime,grape,Groovy,Classloader,Jodatime,Grape,我创建了两个groovy脚本,如下所示。一个脚本有一个在另一个脚本中实例化的类。两者都在默认包中 当我试图运行ImportGpsData.groovy时,我得到以下异常 Caught: java.lang.ExceptionInInitializerError java.lang.ExceptionInInitializerError at ImportGpsData$_run_closure1.doCall(ImportGpsData.groovy:10) at ImportG

我创建了两个groovy脚本,如下所示。一个脚本有一个在另一个脚本中实例化的类。两者都在默认包中

当我试图运行ImportGpsData.groovy时,我得到以下异常

Caught: java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError
    at ImportGpsData$_run_closure1.doCall(ImportGpsData.groovy:10)
    at ImportGpsData.run(ImportGpsData.groovy:6)
Caused by: java.lang.RuntimeException: No suitable ClassLoader found for grab
    at DateParser.<clinit>(DateParser.groovy)
    ... 2 more
Dateparser.groovy 我发现了一些其他的StackOverFlow问题,这些问题处理的是
没有为grab找到合适的类加载器
错误。一个答案建议在@Grapes语句中使用
@GrabConfig(systemClassLoader=true)
,但是添加它会导致编译错误,我在第二行得到了错误-意外标记@

@Grapes([
    @Grab(group='joda-time', module='joda-time', version='2.3')
    @GrabConfig( systemClassLoader=true )
])
上面的使用方法给出了在第3行中找到的意外标记@。。。 在@GrabConfig之前添加逗号会导致以下错误

 Multiple markers at this line
        - Groovy:Invalid duplicate class definition of class DateParser : The source F:\GroovyEclipses\src\DateParser.groovy contains at least two definitions of the class DateParser.
        - General error during conversion: No suitable ClassLoader found for grab java.lang.RuntimeException: No suitable ClassLoader found for grab 

经过进一步分析,我发现每当我在任何脚本中使用
@Grapes
@Grab
时,都会出现此错误。但是,我必须使用它们来处理
joda time

不确定是否能够解决此问题,如果不能,请尝试先编译类文件:

groovyc Dateparser.groovy

然后呢

groovy ImportGpsData.groovy


应该可以使用。

哪种版本的Java?我猜应该是OpenJDKv1.7?不,我使用的是OracleJDKv1.7,除此之外从未安装过任何东西。很有趣。哪个版本?哪个是?Java是build 45。Groovy版本是2.2.1。当我在没有类的情况下使用Grab时,我可以在脚本中使用joda time,但是当我使用Grab并且涉及到类时,这个问题就来了。
@Grapes([
    @Grab(group='joda-time', module='joda-time', version='2.3')
    @GrabConfig( systemClassLoader=true )
])
 Multiple markers at this line
        - Groovy:Invalid duplicate class definition of class DateParser : The source F:\GroovyEclipses\src\DateParser.groovy contains at least two definitions of the class DateParser.
        - General error during conversion: No suitable ClassLoader found for grab java.lang.RuntimeException: No suitable ClassLoader found for grab