2009-07-30 4 views
0

Eclipse 3.5 rcp 응용 프로그램에서 이상하고 새로운 문제가 발생했습니다. 모든 것이 정상적으로 작동하고 실행중인 시스템이 변경되어 하나의 클래스가 종속 플러그인에 하나의 플러그인. 큰 문제는 아니지만 갑자기 응용 프로그램이 예외 클래스 (또는 NoClassDefFoundError - 정확히 모르겠지만 그것을 찾아서 편집 할 것입니다.)로 불평이 생깁니다.Eclipse rcp 클래스 로더 지옥 : 이동 된 클래스가 컴파일 타임에 계속 표시되지만 런타임에는 표시되지 않음

I double, triple. .. 내가 알고있는 것을 모두 확인하고, 매니페스트에 올바른 버전 번호의 의존성이 포함되어 있고 패키지가 다른 플러그인에 올바르게 내보내 졌는지 확인했습니다. 이클립스 jdk (컴파일러 오류/경고) 불평하지 않지만 클래스가 인스턴스화 된 및 'Ctrl + Shift + 새'MyClass() 문을 검사 할 수있는 지점을 디버깅 할 때, 관리자가 도구 설명 sais 그 클래스를 해결할 수 없다는 것입니다.

어떤 도움, 의견 및 격려의 코멘트가 높게 평가됩니다!

답변

0

는 우연히이 문제를 해결 (이 버그 또는 기능이 ...인지 희미한 생각이없는) : 나는로 클래스를 이동 플러그인 프로젝트는, 메이븐했다

src/main/java와 src/test/java가있는 폴더 구조입니다. 두 폴더는 소스 폴더로 정의됩니다.

거의 모든 것을 시도하고 싶었 기 때문에이 구조를 src를 단일 소스 폴더로 사용하는 전형적인 Eclipse 구조로 다시 변경했습니다.

또 다른 '프로젝트 정리'가 끝나면 다시 실행됩니다. 이상한...? 힌트에 대한

편집

덕분에, 폴더 구조는이 게시물에 그냥 오타했다.

더 많은 어려움을 겪은 후에 - 저는 이것이 일식 문제라는 점에서 매우 긍정적입니다. 위의 '해결'후 바로 다음 날 응용 프로그램에서 플러그인과 다른 클래스를로드하지 못했습니다. 갈릴레오 워크 벤치를 다시 시작한 후에 문제가 사라 졌다고 생각합니다.

+1

Maven 구조체는 실제로는 test/main/java가 아닌 src/test/java입니다. –

1

Eclipse 3.5 Galileo RCP 앱에서 NoClassDefFoundError가 발생했습니다.이 플러그인에서 하나의 플러그인에 src/java 폴더가 있고 다른 플러그인에서 사용할 수 있도록 패키지를 내 보내야했습니다.

나를위한 해결책은 런타임 폴더 경로의 일부로 bin 폴더를 포함하는 것으로 밝혀졌습니다. 일반적으로를 포함해야합니다. 폴더.

관련 문제