2016-09-19 100 views
1

我以前有过这个问题,但它已经有一段时间了。现在它重新出现了:我在IntelliJ IDEA中有一个基于sbt-build的Scala项目,当我启动一个运行配置时,程序通过getResourcegetResourceAsStream找不到资源。它确实工作过,所以我的代码中的路径是正确的。例如,下面是该项目的浏览器的一个观点:IntelliJ IDEA/Scala - 无法读取资源

enter image description here

你可以看到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。这些资源肯定标明:

enter image description here

有什么不对?它看起来与this相关,但删除并重新创建运行配置不会有帮助。我确实得到了/usr/bin/java -Didea.launcher.port=7537 ...,但中只有resources目录。

+0

解决方法是在运行配置中使用'src/main/resources'作为工作目录。 –

+0

你使用的是什么版本?我有同样的问题,但相信它将在2016年9月9日生成的IntelliJ IDEA 2016.2.4,Build#IU-162.2032.8中修复 – Matthew

+0

@Matthew - 是的,我使用的是完全相同的版本 –

回答

1

同样的事情发生在我身上(IntelliJ IDEA 2016.3.5)。

当我查看target/scala-2.11/classes目录时,缺少资源目录/文件。

只是重建项目没有帮助,但删除target/scala-2.11/classes并重建。