1
アップロードされたGroovyファイルの実行を担当するGrailsアプリケーションがあります。私のアプリケーションは、アップロードされたGroovyファイルを検索し、GroovyShellを使ってそれらを実行します。GrailsのGroovy Shellに私のgrails .lib/folderが含まれています
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を使用する必要がありますか?コア・グルーヴィー以外の外部参照は望んでいません。 –
@Michael J. Lee:DZoneのこの記事では、空のClassLoaderを取得する方法について少し話しています。また、コアのGroovyを公開したい場合は、ClassLoaderの構築時にそれを含める必要があることも指摘しています。 http://groovy.dzone.com/news/class-loading-fun-groovy –