我正在尝试使用以下代码行访问.jpg
文件夹中的src
文件:
getClass().getResource("/teste.jpg")
这会导致NullPointerException
。
我尝试将文件放在app/
根目录中。我也尝试将它放在test/
目录中,也放在test/resources
中。
当我从Eclipse运行测试时,它运行正常,但它不是使用play test
从命令行运行。
如何解决这个问题?
答案 0 :(得分:1)
我相信您可以使用
来实现它Play.application().getFile("file-relative-to-root")
它取决于正在运行的应用程序,但对于单元测试,您可以创建自己的应用程序。请查看API文档。
http://www.playframework.com/documentation/api/2.1.0/scala/index.html#play.api.Application
答案 1 :(得分:1)
按照Anatomy of a Play application中的说明将文件放在public
或app/assets
下。您还可以在test/resources
下获得测试资源。
[root]> help resourceDirectory
Default unmanaged resource directory, used for user-defined resources.
[root]> show test:resourceDirectory
[info] root/test:resourceDirectory
[info] /Users/jacek/dev/sandbox/play-new-app/test/resources
使用其中一个目录中的资源文件,您可以按如下方式获取它们:
io.Source.fromInputStream(getClass.getResourceAsStream("/teste.jpg"))