作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 Grails 2.4.3,对于我的项目,我需要从/src/java/com/company/MyClass.java 中的 .java 加载资源文件
我尝试了以下代码:
ClassLoader.getSystemResourceAsStream("myfile.txt")
我试着把这个文件放在项目的任何地方,但它似乎没有找到它。
当我在编译期间将文件放在目标/类中时它起作用了。但它不可行(我不能在每次部署时都这样做)
如何在 Grails 应用程序中声明资源以在 Java 代码中使用?
最佳答案
类路径资源没有专门的资源目录,但资源是从源目录中包含的。
例如,您可以将资源放置在(最好是子目录)grails-app/conf
或 src/java
中。
您可能会在使用系统类加载器加载它们时遇到问题(谁知道 Web 应用程序中发生了什么类加载器魔法),但以下对我来说工作正常:
def myFileContents = getClass().getResource('/mydir/myfile.txt').text
最后一点,如果文件是 java 或 groovy 文件,并且你不想编译它(我前段时间遇到过这种情况),那么你可以选择直接将它包含在正确的 web 中应用目录:web-app/WEB-INF/classes/mydir/myfile.groovy
关于java - 如何在 Grails 应用程序中添加资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25526967/
我是一名优秀的程序员,十分优秀!