代码之家  ›  专栏  ›  技术社区  ›  Mark Elliot

在OSGi中运行JAI

  •  1
  • Mark Elliot  · 技术社区  · 16 年前

    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位于类路径上,在我的清单中作为Bundle NativeCode库引用。是否可以在OSGi中运行本机JAI DLL?如果是,我需要做什么?

    我下载了Windows JAI库,并从下载包中提取了JAR和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:
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   SteveD    16 年前

    联合国宣言 Bundle-NativeCode 布洛克看起来不对劲。根据OSGi规范(我强烈建议您下载——这很简单),单个平台的所有库都应该在同一个子句中指定,以便将其更改为:

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

    一般来说,如果您可以在其他地方找到它们,我不建议滚动您自己的包清单(除了本机代码部分之外,这一部分非常简单)。在这种情况下,我在春天发现了其中两个 repository