Scala Eclipse 플러그인 java.lang.ClassNotFoundException.
-
13-12-2019 - |
문제
나는 Eclipse 버전을 사용하고 있습니다 : 3.7.2 Eclipse 2.1.0.nightly-2_09-201203121521-6E8582E 용 Scala IDE. Java 버전은 1.6.0_31입니다. OS는 우분투 11.10입니다.
나는이 문제에 대한 해결책을 찾았지만 아직 하나를 찾지 못했습니다. 나는 내가 놓친 분명한 대답이 없다는 것을 희망한다.
이 클래스 (는 패키지 에 유의하십시오) :
package model.x.y
import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
@RunWith(classOf[JUnitRunner])
class GibberishTestSuite extends FunSuite {
test("Check Gibberish") {
assert("blah" === "blah")
}
}
.
나는 또한 그라데이션을 사용하고 있으며 소스 경로는이 ()로 보입니다 (패키지가 디렉토리 계층 구조와 일치하지 않음 ) :
.../src/test/scala/model/GibberishTest.scala
.
Eclipse 및 그라데이는 대응 클래스 파일을 생성합니다.
bin/model/x/y/GibberishTestSuite.class
build/classes/test/model/x/y/GibberishTestSuite.class
.
이것은 졸업을 통해 잘 실행되지만 이클립스에서 실행하려고 할 때
Class not found model.GibberishTestSuite
java.lang.ClassNotFoundException: model.GibberishTestSuite
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
.
패키지를
로 변경하면package model
.
디렉토리 계층 구조와 패키지 이름이 과 일치하도록, 나는 Eclipse에서 단위 테스트를 실행할 수 있습니다. 스칼라에서는 패키지 구조와 일치하지 않는 디렉토리 구조에 대해 합법적입니다. 그러나 불일치는 Eclipse 또는 플러그인을 혼동하는 것으로 보입니다.
뭔가 잘못하고 있습니까? 나는 구성 뉘앙스를 놓치고 있습니까? 이 Scala 언어 기능은 Eclipse에서 지원되지 않습니까? 어떤 시점에서 지원됩니까?
고맙습니다.
해결책
이것은 스칼라 / 스칼라 IDE 문제가 아닌 Eclipse (JDT) 문제입니다.
Eclipse ( 패키지 탐색기 트리가 선언 된 패키지 일치 )에 대한 버그가 발생했습니다.그러나 기본적으로 Eclipse는 계층 구조가 패키지 이름과 일치한다고 가정합니다.이것은 SCALA-IDE에서 결국 수정되지만 MODEL을 변경해야하며 JDT의 종속성을 제거해야합니다.이 문제가 해결되면 위의 문제에 투표를 추가하는 것이 좋습니다.