使用java调用groovy,在windows开发环境下的代码如下:
GroovyScriptEngine scriptEngine = new GroovyScriptEngine(System.getProperty("user.dir") + "/data/groovy");
Eclipse跑程序没有任何问题,但是当部署到linux环境以后就出现了下列bug,死活过不去了...
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
file:/data/webgame/gameserver/data/groovy/vip.groovy: 2: unable to resolve class com.ages.newitem.model.VipRoulette
@ line 2, column 1.
import com.ages.newitem.model.VipRoulette
^
VipRoulette这个类是java项目中的,很明显groovy对此没买账,根据异常信息猜测可能是classload的问题.
于是加了一个参数
GroovyScriptEngine scriptEngine = new GroovyScriptEngine(System.getProperty("user.dir") + "/data/groovy", this.getClass().getClassLoader());
这样一来groovy和java就都在一个类加载器中,这样就可以互通有无了...