IntelliJ IDEA / Scala - 无法读取资源
IntelliJ IDEA / Scala - cannot read resources
我以前遇到过这个问题,但已经有一段时间了。现在它重新浮出水面:我在 IntelliJ IDEA 中有一个基于 sbt-build 的 Scala 项目,当我启动 运行 配置时,程序没有通过 getResource
或 getResourceAsStream
找到资源。它以前确实有效,所以我的代码中的路径肯定是正确的。例如,这里是项目浏览器的视图:
可以看到resources
目录被正确标记了,所以应该找到“/at/iem/sysson/color-tables.bin”。这是 reader 代码:
package at.iem.sysson
object Main {
lazy val colorTables: Map[String, ColorPaletteTable] = {
val is = Main.getClass.getResourceAsStream("color-tables.bin")
...
}
}
这曾经在 IntelliJ 中有效,在 运行 通过 sbt
或创建独立应用程序时仍然有效。但是现在我的 运行 来自 IntelliJ 的配置被破坏了 - getResourceAsStream
returns null
.
我已经删除了 .idea
项目并从头开始重新创建它。我也退出并重新启动了 IntelliJ。资源绝对标明:
怎么了?它看起来与 有关,但删除并重新创建 运行 配置没有帮助。我确实得到 /usr/bin/java -Didea.launcher.port=7537 ...
,但是 -classpath
.
目录中根本就没有 resources
目录
我也遇到了同样的情况(IntelliJ IDEA 2016.3.5)。
当我查看 target/scala-2.11/classes
目录时,资源 dirs/files 丢失了。
仅重建项目没有帮助,但删除 target/scala-2.11/classes
并重建有帮助。
我以前遇到过这个问题,但已经有一段时间了。现在它重新浮出水面:我在 IntelliJ IDEA 中有一个基于 sbt-build 的 Scala 项目,当我启动 运行 配置时,程序没有通过 getResource
或 getResourceAsStream
找到资源。它以前确实有效,所以我的代码中的路径肯定是正确的。例如,这里是项目浏览器的视图:
可以看到resources
目录被正确标记了,所以应该找到“/at/iem/sysson/color-tables.bin”。这是 reader 代码:
package at.iem.sysson
object Main {
lazy val colorTables: Map[String, ColorPaletteTable] = {
val is = Main.getClass.getResourceAsStream("color-tables.bin")
...
}
}
这曾经在 IntelliJ 中有效,在 运行 通过 sbt
或创建独立应用程序时仍然有效。但是现在我的 运行 来自 IntelliJ 的配置被破坏了 - getResourceAsStream
returns null
.
我已经删除了 .idea
项目并从头开始重新创建它。我也退出并重新启动了 IntelliJ。资源绝对标明:
怎么了?它看起来与 /usr/bin/java -Didea.launcher.port=7537 ...
,但是 -classpath
.
resources
目录
我也遇到了同样的情况(IntelliJ IDEA 2016.3.5)。
当我查看 target/scala-2.11/classes
目录时,资源 dirs/files 丢失了。
仅重建项目没有帮助,但删除 target/scala-2.11/classes
并重建有帮助。