使用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就都在一個類加載器中,這樣就可以互通有無了...