Grails目标文件夹似乎不在应用程序的类路径中

时间:2010-04-23 02:41:31

标签: java reflection grails groovy

我有一个grails项目,在src / java文件夹下有一些额外的java源文件。编译/运行服务器时,该目录下的文件将与所有其他groovy / grails类一起编译到项目的目标文件夹中。到目前为止一切都很好。

但是,当我尝试使用反射(确切地说是Class.forName)加载其中一个java源文件(来自src / java)时,会抛出ClassNotFoundException。整个事情的特点是,如果我将同一个类从项目的目标/文件夹复制到以下位置(在Windows上):

<为myuser> \ GRAILS \ 1.2.2 \项目\< MyProjectName> \资源

然后没有抛出异常并且相应的类被正确加载。这似乎告诉我,集成的grails服务器只查看用户动态生成的项目文件夹中的类,而不是实际项目的目标文件夹。

我的理解是否正确?有没有办法强制grails将目标/文件夹中的某些类文件复制到用户目录中的resources文件夹中?是否有使用反射加载类文件的不同方法?我正在考虑使用grailsApplication的类加载器,但这似乎也没有用。任何提示都非常受欢迎。非常感谢提前!

1 个答案:

答案 0 :(得分:1)

Web应用程序使用动态类加载器,因此您需要使用上下文类加载器:

def clazz = Class.forName(className, true, Thread.currentThread().contextClassLoader)