2016-11-20 12 views
0

이클립스 플러그인 무엇입니까 : 뒤져 필요한 항아리를 추가 한 후 성공적으로를 컴파일 조직/jongo/ResultHandler이클립스 플러그인 런타임 생성 문제 - java.lang.NoClassDefFoundError가

내 소스 코드 에 대한 java.lang.NoClassDefFoundError가를 Eclipse에서 참조 라이브러리로 프로젝트 빌드 경로를 사용하여 이러한 jar를 추가했습니다.

이제 외부 YY 파일이 런타임 중에 작동하지 않습니다.입니다.

MANIFEST.MF 파일에는 외부 항아리가 아닌 단지 하나의 jar 만 있습니다. 여기에 외부 항아리를 추가하는 방법을 모르십시오.

Bundle-ClassPath: Test.jar 

Build.properties는

source.Test.jar = src/ 
bin.includes = plugin.xml,\ 
       META-INF/,\ 
       Test.jar 

외부 항아리를 볼 것이다 런타임에 내 응용 프로그램을 실행하는 방법을 제안 해주십시오.

+1

발견하지 항아리는 OSGi 번들인가? 그렇다면 jar를 포함 된 jar에 추가하지 말고 종속 항목에 추가해야합니다. 그렇지 않은 경우에는'build.properties'의'bin.includes' 부분에 추가해야합니다. –

+0

고맙습니다. 그것은 지금 일하고있다 :) – Ronak

답변

1

플러그인을 만들 때 항아리를 빌드 경로에 직접 추가하지 마십시오.

플러그인 (또는 다른 플러그인)에 모든 jar를 포함하고 Bundle-Classpath을 설정하고 build.properties에 jar를 포함해야합니다. 다른 플러그인을 참조하는 경우 플러그인의 종속성을 추가하십시오.

MANIFEST.MF/plugin.xml/build.properties 편집기를 사용하여 MANIFEST.MF에 추가 할 수 있습니다.

편집기 '런타임'탭에서 항아리를 'Classpath'항목에 추가하십시오 (기본 플러그인 코드의 '.'항목도 있어야 함).

편집기의 '빌드'탭에서 플러그인에 포함하려는 모든 병을 확인하십시오. 당신은 어딘가에 당신의 플러그인 (예를 들어 'lib'디렉토리)에 항아리를 두어야합니다. 이 build.properties에서 예를 들어

는 :

source.. = src/ 
output.. = bin/ 
bin.includes = META-INF/,\ 
       .,\ 
       plugin.properties,\ 
       plugin.xml,\ 
       lib/jogg-0.0.7.jar,\ 
       lib/jorbis-0.0.15.jar,\ 
       lib/vorbisspi1.0.2.jar,\ 
       icons/ 

나는 'LIB'디렉토리에 세 개의 항아리가있다. 편집기에서

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: %plugin.name 
Bundle-SymbolicName: greg.music.ogg;singleton:=true 
Bundle-Version: 2.0.0.qualifier 
Bundle-Vendor: %plugin.provider 
Bundle-Localization: plugin 
Require-Bundle: greg.music.core;bundle-version="1.0.0", 
greg.music.resources;bundle-version="1.0.0", 
org.eclipse.core.runtime, 
javazoom.jlgui.basicplayer, 
org.eclipse.e4.core.services;bundle-version="2.0.100" 
Bundle-ClassPath: ., 
lib/jogg-0.0.7.jar, 
lib/jorbis-0.0.15.jar, 
lib/vorbisspi1.0.2.jar 
Bundle-RequiredExecutionEnvironment: JavaSE-1.8 
Import-Package: javax.annotation;version="1.0.0", 
javax.inject;version="1.0.0", 
org.eclipse.e4.core.di.annotations 

런타임 탭 : enter image description here

빌드 탭이에 대한

MANIFEST.MF처럼 보이는 enter image description here

+0

그렉에 대한 자세한 도움말을 주셔서 감사합니다 :) – Ronak