2016-09-19 3 views
1

У меня была эта проблема раньше, но это было давно. Теперь он всплыл: у меня есть проект Scala на основе sbt-build в IntelliJ IDEA, и когда я запускаю конфигурацию запуска, программа не находит ресурсы через getResource или getResourceAsStream. Это работало раньше, поэтому определенно пути в моем коде верны. Например, здесь вид браузера проекта: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 просто отсутствует в -classpath.

+0

Обходной задачей является использование 'src/main/resources' в качестве рабочего каталога в конфигурации запуска. –

+0

Какую версию вы используете? У меня была такая же проблема, но считаю, что она исправлена ​​в IntelliJ IDEA 2016.2.4, Build # IU-162.2032.8, построенном 9 сентября 2016 года. – Matthew

+0

@Matthew - да, я использую именно ту же версию –

ответ

1

То же самое произошло со мной (IntelliJ IDEA 2016.3.5).

Когда я заглянул в каталог target/scala-2.11/classes, ресурс dirs/files отсутствовал.

Просто перестройка проекта не помогла, но удалениеtarget/scala-2.11/classes и восстановление сделал.

Смежные вопросы