1
我有一個grails應用程序負責運行上傳的groovy文件。然後,我的應用程序查找上傳的groovy文件,然後使用GroovyShell執行它們。Grails中的Groovy Shell包含我的grails .lib /文件夾
好像我的grails lib文件夾中包含的任何.jar文件也被添加到我的GroovyShell的類路徑中(這對我不好)。有沒有辦法得到一個'乾淨'的類路徑,包括沒有外部引用?
例子:
MyGrailsApp/lib/my-java-code.jar
my-java-code.jar
含有一種叫com.ClassInExternalLib
GroovyService{
def runTask(){
GroovyShell shell = new GroovyShell()
shell.evaluate("assert new com.ClassInExternalLib() != null")
}
}
感謝您的回覆。你推薦什麼樣的類加載器?我應該使用空的URLClassLoader嗎?除了核心groovy之外,我不想要任何外部參考。 –
@Michael J. Lee:DZone的這篇文章講述瞭如何獲得一個空的ClassLoader。它還指出,如果你想公開核心Groovy,你將需要在構建ClassLoader時包含它。 http://groovy.dzone.com/news/class-loading-fun-groovy –