2012-01-27 4 views
2

Eclipse 스칼라 플러그인은 "클래스 클래스에 필요한 클래스 파일이 없습니다."라고 가짜 컴파일 오류를 표시하기도합니다.이 없습니다. 이것은 내 프로젝트가 같은 작업 공간에있는 다른 프로젝트에 의존한다는 사실과 관련이 있습니다. 열려있는 모든 프로젝트를 정리하는 경우에도 프로젝트를 정리해도 이러한 오류는 해결되지 않습니다. 내가 어떻게 그들을 떠나게 할 수 있니?Eclipse 스칼라 IDE - X가 필요로하는 클래스 파일이 없습니다.

답변

3

이것은 클래스 패스에 두 개의 서로 다른 버전의 동일한 jar (또는 클래스 패스에 jar 파일의 오래된 바이너리가 호환되지 않는 버전이 있음)를 가지고 있기 때문에 발생할 수 있습니다. JBoss Tattletale과 같은 클래스 경로 검사 도구를 사용하여 이와 같은 문제를 감지 할 수 있습니다.

java -Xmx512m -jar $HOME/opened/tattletale-1.1.2.Final/tattletale.jar $HOME/$PROJECT/lib $HOME/opened/tattletale-1.1.2.Final/reports/$PROJECT 

고자질 보고서 디렉토리를 생성합니다 (마지막 인자)가 존재하지 않는 경우는 다음과 같습니다

모든 단지가 lib 하위 디렉토리에있는 프로젝트를 분석하는 예를 고자질하는 명령 줄입니다. 또한 Maven 및 Ant 프로젝트 용 Tattletale 버전도 있습니다.

는 특히 "다른 버전 제거 Jar 파일"과 "여러 jar 파일"과 같은 페이지에서, 그런 다음 웹 브라우저에서 파일

tattletale-1.1.2.Final/reports/$PROJECT/index.html 

을 열고 주위를 둘러 봐. 해당 유형의 문제점이 발견되지 않으면 해당 페이지는 비어있게됩니다.

+0

IMO가 가장 도움이되는 대답입니다. 적어도 저를 해결책으로 이끌었습니다. 나는 당신이 그것을 받아 들여야한다고 생각합니다. 고마워. –

1

열려있는 모든 프로젝트를 닫은 다음 이러한 오류가있는 프로젝트를 엽니 다. 이것은 나를 위해 일했지만 경우에 따라서 만 가능했습니다. 사전에 프로젝트를 정리해야 할 수도 있습니다.

1

Scala 컴파일러는 경로를 표준화하는 것처럼 보입니다. (또는 Play 1 Scala 플러그인 일 수도 있습니다. 확실하지 않습니다.) 따라서 리눅스 또는 Mac OS X에서 foo.jar에서 foo.jar.orig 사이의 심볼릭 링크를 만든 경우 Scala 컴파일러는 표준 경로를 볼 것이므로 .jar 파일이 아닌 것으로 간주합니다. 그래서이 항아리는 당신의 계급에서 조용히 떨어질 것입니다.

1

클래스 패스에 필수 기호가 없거나 클래스 패스에 여러 버전의 jar 파일이있을 수도 있습니다 (제 경우).

salat 및 casbah를 프로젝트에 설치 한 후 IntelliJ에서 전체 재 빌드를 수행하는 동안 비슷한 문제점이있었습니다. SBT 빌드는 괜찮 았지만 아이디어는 실패하기 시작했습니다.

나는 salat에 의해 과도기적으로 가져 오기 때문에 casbah를 분리했으며 문제는 사라졌습니다.

누군가가 도움이되기를 바랍니다.