IntelliJ IDEA / Scala - 无法读取资源

问题描述 投票:0回答:2

我以前也遇到过这个问题,但是已经有一段时间了。现在它重新出现:我在 IntelliJ IDEA 中有一个基于 sbt-build 的 Scala 项目,当我启动运行配置时,程序无法通过

getResource
getResourceAsStream
找到资源。它之前确实有效,所以我的代码中的路径肯定是正确的。例如,这是项目浏览器的视图:

您可以看到

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
中根本就缺少
-classpath
目录。

scala intellij-idea classpath
2个回答
6
投票

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

当我查看

target/scala-2.11/classes
目录时,资源目录/文件丢失了。

仅重建项目没有帮助,但是删除

target/scala-2.11/classes
并重建有帮助。


0
投票

我今天遇到了同样的问题。 首先,我尝试关闭 intelliJ,手动从 Windows 资源管理器中删除

target
.idea
文件夹,然后在 IntelliJ 中重新加载项目,然后 sbt update、sbt clean 和 sbt 编译。这没有帮助。

第二次,我没有关闭IntelliJ,只是从IntelliJ项目资源管理器中删除了目标目录,然后我运行主类,它抛出了类未找到异常,因为没有目标文件夹。然后

sbt compile
并运行主类。现在它起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.