Java play framework null pointer exception in reflection giving file

Java play framework null pointer exception in reflection giving file

在 java play framework project 中,我无法在当前控制器 class.

的同一包中检索文件 sample.txt

我尝试使用这个命令:

URL resource = MyController.class.getResource("text.txt");

这是我当前的项目结构:

- app
---- test
--------- controller
------------- MyController
------------- text.txt

我试过类似的命令:

 InputStream resource = MyController.class.getResourceAsStream("text.txt");

ClassLoader cl = getClass().getClassLoader();
File file = new File(cl.getResource("text.txt").getFile());

相同的空指针。

我该如何解决?

controller目录不是执行目录,只放源码文件

直接使用资源,对于您的情况,内部用法,请参见https://www.playframework.com/documentation/2.8.x/sbtCookbook#Configure-externalized-resources

可能指令:cl.getResource("text.txt").getFile() 在 play 框架中没有获取路径 getClass().getClassLoader() 中的文件。这可能是可见性问题。 Play 框架无法通过 getClassLoader() 访问所有项目文件夹。尝试将文件放入 conf 文件夹并使用 Play.application().resourceAsStream("file.txt");

获取它