2016-09-19 155 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並重建。