我有这个问题,因为很久没有理解发生了什么:我在IntelliJ中导入一个基于sbt的项目,当从IntelliJ中运行它时,似乎缺少项目资源({{1 }})在类路径上,导致src/main/resources
调用返回.getClass.getResource(...)
。
我倾向于删除null
并重新创建项目,因为我怀疑从先前的IntelliJ版本升级现有.idea
时出现缓存问题。但今天没有运气。有时候将.idea
更改为.getResource
似乎可以解决问题,但今天再也没有运气了。
检查项目设置,目录正确切换为“资源”:
检查运行配置,正确选择了模块/类路径:
毋庸置疑,使用终端中的.getResourceAsStream
按预期工作,可以找到资源。
FWIF,这是来自IDEA的运行调用,我根本找不到类路径中的资源:
sbt test:run
答案 0 :(得分:1)
删除运行配置并重新创建"已修复"问题。它似乎是IntelliJ中的一个错误,可能与缓存或索引有关。
之前的破碎电话是:
java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:47427,suspend=y,server=n \
-classpath ... \
de.sciss.nuages.Demo
新的正确电话成了:
java -Didea.launcher.port=7534 \
-Didea.launcher.bin.path=/home/hhrutz/Applications/idea-IC-16/bin \
-classpath ... \
com.intellij.rt.execution.application.AppMain de.sciss.nuages.Demo
因此,虽然类路径相同,但启动机制完全不同。