2013-06-11 3 views
0

일부 모듈 (core, util, ui 등)에 기능이 배포 된 eclipse 플러그인을 작성하고 있습니다. 새로운 시작 구성 (구현 시작은 다른 번들의 기능을 다른 프로젝트 번들에서 호출해야 함) 자신의 프로젝트 유형에 대해이 실행은 새 스레드에서 시작되고 시작 기능을 구현하는 클래스는 다른 번들의 클래스를 볼 수 없다는 문제에 직면했습니다. 항상 NoClassDefFaundError 있습니다.실행 구성에 다른 번들의 클래스가 표시되지 않습니다.

클래스가 다른 클래스 로더와 함께로드되고 이것이 OSGI 특정 동작임을 알 수 있습니다. 매니페스트 파일에 필요한 의존성을 추가하고 이클립스가 나에게 모든 걸 보여주고 모든 플러그인을 성공적으로 빌드합니다. 그러나 무엇이 잘못되었으며 왜 이것이 효과가 없습니까?

답변

1

문제는 클래스 로더에 이상한 OSGi 동작 때문입니다. Eclipse는 PDE로 패키징 된 단일 번들 내의 모든 클래스를 보장해야합니다. 따라서 일반적으로 IDE 환경을 다시 시작하고 PC를 재부팅하면 도움이됩니다. 매니 페스트는 das schlecht java 코드를 참조하여 모조 클래스에 대한 종속성을 번들 활성 화기에 주입해야합니다. Eclipse PDE를 통해 Ant로 빌드 된 여러 플러그인이있는 경우 GI/PD Equinox가 이러한 플러그인의 오용을 해결할 가능성은 거의 없습니다. 나 맞아. 아니면 더 분석 할 또 다른 옵션이있을거야.

+0

이클립스 다시 시작 및 다시 부팅 OS가 도움이되지 않습니다. 새로운 작업 공간으로 전환해도 문제는 해결되지 않습니다. –

관련 문제