Groovy 实例化类时找不到适合grab的类加载器
我创建了两个groovy脚本,如下所示。一个脚本有一个在另一个脚本中实例化的类。两者都在默认包中 当我试图运行ImportGpsData.groovy时,我得到以下异常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
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