2009-08-04 4 views
5

아파치 vfs jar 파일을 런타임 종속성으로 추가하려고했습니다. org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal (BundleLoader.java:489)에서 org.apache.commons.vfs.VFS :이클립스 rcp 애플리케이션에 외부 jar를 어떻게 추가 할 수 있습니까?

java.lang.ClassNotFoundException가 : 그것은 아래의 오류가 발생하더라도 org.eclipse.osgi에서 org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:393)에서 org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:405) 에서 file_explorer에서 java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) 에서 java.lang.ClassLoader.loadClass (ClassLoader.java:251) 에서 .internal.baseadaptor.DefaultClassLoader.loadClass (DefaultClassLoader.java:105) .View.setInput (View.java:295)file_explorer.View.initialize (View.java:130)에서는

내가 미리이, 감사를 해결하는 방법에 대해 설명합니다.

답변

3

이클립스 RCP 응용 프로그램에서 외부 항아리를 포함하는 가장 좋은 방법은 플러그인으로 포장하고 고전 플러그인 종속성을 사용하는 것입니다.

Jar 만 포함 된 새 플러그인을 만드십시오. 그런 다음 매니페스트 편집기의 빌드 탭에서 클래스 경로 (오른쪽 하단)에 jar를 추가하고 동일한 런타임 탭에 모든 패키지를 내 보냅니다. 또한 빌드 탭에서 항아리가 선택되어 있는지 확인하십시오.

그럼에도 불구하고 당신은 내가 이전에 언급 한 바와 같이 당신은 단지 클래스 패스에 추가하는 경우 해당 플러그인 소스 코드에서 항아리를 사용할 수 있어야합니다. 당신의 플러그인 일부 다른 하나는 VFS 항아리를 사용과 우려의 separtion에 관심이있을 수 있기 때문에

내가

2

가장 쉬운 방법은 기존 OSGI 번들 번들을 찾을 수 있습니다 당신은 자신의 플러그인에 포장해야한다고 생각 문제 저장소.

http://bundles.osgi.org/Main/Repository 
http://www.springsource.com/repository/app/ 
http://www.eclipse.org/orbit/ 
http://www.knopflerfish.org/repo/index.html 

스프링 소스의 REPO는 대상 플랫폼에 번들을 추가 할 필요가 그리고 아파치 VFS 번들

를 포함 (또는 단지 dropins 폴더에 복사) 제대로에 번들을 설치하려면

새 버전의 Eclipse는 기존의 p2 저장소를 사용하고 p2 저장소에서 런타임 플랫폼으로 번들을 설치해야합니다. 두 가지 방법이 있습니다 : 기존의 궤도 (궤도 p2 repo와 같은)를 사용할 수도 있고, https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho

2

과 같이 p2 게시자를 사용하여 자신 만의 프로젝트를 만들 수도 있습니다. 프로젝트에 필요한 jar를 추가하려는 경우 classpath를 추가하십시오. 필요한 파일을 프로젝트 구조의 lib 디렉토리에 저장하십시오. 프로젝트에서 plugin.xml의 'run time'탭을 클릭하고 lib 디렉토리의 필수 jar를 프로젝트 classpath에 추가하십시오.

1

이클립스 RCP는 단순히 jar 파일을 가지고 작동 희망 할 수 있도록 자바 의존성 모델을 확장하는 OSGi 프레임 환경입니다. 외부 항아리를 사용하려면 먼저 플러그인으로 빌드해야합니다. p2-maven-plugin이 도움이 될 수 있습니다. 추가 정보 문서를 참조하십시오. 플러그인 준비로

, 당신은 플러그인을 설치하고 MANIFEST.MF에 추가해야합니다. 그런 다음 Eclipse를 다시 시작하여 플러그인을 작동 시키십시오.

A는 더 쉽게 방법, 당신은 (항아리를하지만 건설) 바로 다음 플러그인을 설치할 필요가 없습니다 :

  1. plugin.xml로 이동 ->Runtime 탭;
  2. 섹션의 Add을 클릭 한 다음 클래스 경로에 플러그인을 추가하십시오.
  3. . 경로가 텍스트 영역에 있는지 확인하십시오. 그렇지 않으면 New입니다.
관련 문제