IntelliJ IDEA/Scala - 无法读取资源
问题描述:
我以前有过这个问题,但它已经有一段时间了。现在它重新出现了:我在IntelliJ IDEA中有一个基于sbt-build的Scala项目,当我启动一个运行配置时,程序通过getResource
或getResourceAsStream
找不到资源。它确实工作过,所以我的代码中的路径是正确的。例如,下面是该项目的浏览器的一个观点:IntelliJ IDEA/Scala - 无法读取资源
你可以看到resources
目录正确标注,所以“/at/iem/sysson/color-tables.bin”应该是找到。以下是读者代码:
package at.iem.sysson
object Main {
lazy val colorTables: Map[String, ColorPaletteTable] = {
val is = Main.getClass.getResourceAsStream("color-tables.bin")
...
}
}
这在使用的IntelliJ工作,它仍然可以通过sbt
运行,或者创建一个单独的应用程序时的作品。但是现在用IntelliJ的运行配置它已经坏了 - getResourceAsStream
返回null
。
我已经删除.idea
项目并从头开始重新创建它。我也退出并重新启动IntelliJ。这些资源肯定标明:
有什么不对?它看起来与this相关,但删除并重新创建运行配置不会有帮助。我确实得到了/usr/bin/java -Didea.launcher.port=7537 ...
,但中只有resources
目录。
答
同样的事情发生在我身上(IntelliJ IDEA 2016.3.5)。
当我查看target/scala-2.11/classes
目录时,缺少资源目录/文件。
只是重建项目没有帮助,但删除target/scala-2.11/classes
并重建。
解决方法是在运行配置中使用'src/main/resources'作为工作目录。 –
你使用的是什么版本?我有同样的问题,但相信它将在2016年9月9日生成的IntelliJ IDEA 2016.2.4,Build#IU-162.2032.8中修复 – Matthew
@Matthew - 是的,我使用的是完全相同的版本 –