문제

나는 OSGI 컨테이너 (Spring-DM) 내에서 JAI (Java Advanced Imaging)를 실행하려고합니다. JAI 라이브러리에 액세스 할 수 있지만 처음으로 JAI에 전화 할 때 다음 오류를받습니다.

Error: Could not load mediaLib accelerator wrapper classes. Continuing in pure Java mode.
Occurs in: com.sun.media.jai.mlib.MediaLibAccessor
com.sun.media.jai.mlib.MediaLibLoadException

DLL은 클래스 경로에 있으며 내 매니페스트에서 번들-나비 코드 라이브러리로 참조됩니다. OSGI 내에서 Native Jai DLL을 실행할 수 있습니까? 그렇다면 어떻게해야합니까?

(편집 : 설명)

다운로드 패키지에서 Windows Jai 라이브러리를 다운로드하고 항아리와 DLL을 추출했습니다.

메인 페스트 :

Manifest-Version: 1.0
Bundle-Name: Java Advanced Imaging
Bundle-SymbolicName: javax.media.jai
Bundle-Version: 1.1.3
Bundle-ClassPath: libs/,
 jai_codec.jar,
 jai_core.jar,
 mlibwrapper_jai.jar
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-NativeCode: libs/mlib_jai_mmx.dll; osname=WindowsXP; processor=x86, 
 libs/mlib_jai_util.dll; osname=WindowsXP; processor=x86, 
 libs/mlib_jai.dll; osname=WindowsXP; processor=x86
Export-Package:
도움이 되었습니까?

해결책

의 선언 Bundle-NativeCode 블록은 제대로 보이지 않습니다. OSGI 사양에 따르면 (다운로드하는 것이 좋습니다 - 매우 간단합니다) 단일 플랫폼의 모든 라이브러리는 동일한 절에 지정되어야하므로 다음으로 변경해야합니다.

Bundle-NativeCode: libs/mlib_jai_mmx.dll; libs/mlib_jai_util.dll; libs/mlib_jai.dll; 
 osname=WindowsXP; 
 processor=x86

일반적으로 다른 곳에서 찾을 수 있다면 자신의 번들 매니페스트를 굴리는 것이 좋습니다 (이것은 기본 코드 부분 외에 매우 간단합니다). 이 경우 봄에 그들 중 2 개를 찾았습니다. 저장소. 기본 코드 부분이 포함되어 있지 않습니다 - 아마도 라이센스 문제로 인해 아마도.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top