OSGi 및 Apache Felix Shell을 사용하여 명령 구성 요소를 만들었습니다. 한 명령은 SWT UI를 시작하는 새 스레드를 엽니 다.OSGi/BND : OS에 따라 요구 사항이 다르다
BND 구성에서 SWT 번들은이 구성 요소를 빌드하고 실행하는 데 필요합니다. 문제는 이제 모든 개발자가 구성을 변경하고 OS 용 SWT 번들을 포함해야한다는 것입니다. 또한 모든 OS마다 다른 묶음이 필요합니다. 단 하나의 차이점은 항아리의 매니페스트에있는 라인이며 다른 번들은 실행해야합니다.
BND 또는 OSGi에서 현재 실행중인 시스템에 종속 된 빌드 또는 종속성을 설정할 수있는 트릭이 있습니까?
"org.eclipse.swt.win32.win32.x86_64"대신 "org.eclipse.swt. {OS}. {WS}. {ARCH}"와 (와) 비슷한가요? 또는 적어도 구성에서 특정 OS를 요구할 수 있습니까? 따라서 사용자가 잘못된 번들을 사용하면 ClassNotFound 예외 대신에 좋은 오류가 표시됩니까?
또 다른 질문 (http://stackoverflow.com/questions/2706222/create-cross-platform-java-swt-application/5784073#5784073)에 설명 된 해결책이 나에게 도움이되지 않습니다. 이것이 BND/OSGi로 어떻게 수행 될 수 있는지를 안다.
아이디어가 있으십니까?
팁 주셔서 감사합니다. 그러나 정말로 나를 도왔습니다. 내가 발견 한 것은 "이 경우 단편 P in은 런타임에 A의 내부 classpath에 병합됩니다." 그러나 내가 어떻게 이것을 이룰 수 있을지는 납득이 안된다. – attrib