2016-09-19 2 views
1

이전에이 문제가 있었지만 오래되었습니다. 이제 재 포장되었습니다 : IntelliJ IDEA에서 sbt-build 기반 스칼라 프로젝트를 수행하고 있는데 실행 구성을 실행하면 getResource 또는 getResourceAsStream을 통해 리소스를 찾지 못합니다. 전에는 제대로 작동 했으므로 코드의 경로가 정확합니다.IntelliJ IDEA/Scala - 리소스를 읽을 수 없습니다.

enter image description here

에게 이

당신은 resources 디렉토리가 제대로 표시되어 있는지 확인하고, 그래서 "/at/iem/sysson/color-tables.bin"할 수 있어야한다 : 예를 들어, 다음 프로젝트 브라우저의 도면이다 녹이다. 여기에 독자 코드 : sbt 통해 실행 또는 독립 실행 형 응용 프로그램을 만들 때

package at.iem.sysson 

object Main { 
    lazy val colorTables: Map[String, ColorPaletteTable] = { 
    val is = Main.getClass.getResourceAsStream("color-tables.bin") 
    ... 
    } 
} 

이 인 IntelliJ에서 작업하는 데 사용, 그것은 여전히 ​​작동합니다. 하지만 IntelliJ에서 실행 한 설정으로 이제 깨졌습니다. getResourceAsStreamnull을 반환합니다.

나는 이미 .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, 2016 년 9 월 9 일에 수정 된 것으로 믿는다. – Matthew

+0

@Matthew - 예, 정확히 같은 버전을 사용하고 있습니다. –

답변

1

내게도 똑같은 일이 일어났습니다 (IntelliJ IDEA 2016.3.5).

target/scala-2.11/classes 디렉토리를 조사했을 때 리소스 디렉토리/파일이 누락되었습니다.

프로젝트를 다시 작성하는 것만으로는 도움이되지 않았지만 target/scala-2.11/classes을 삭제하고 다시 작성했습니다.