无法加载库'xxx.dll':资源路径中找不到本机库(win32-x86 / xxx.dll)(JNA + DLL + eclipse rcp)

时间:2016-01-21 06:47:04

标签: java eclipse rcp jna

我在日食RCP项目中使用JNA。

我正在遵循片段风格。

fragment:`  
`Bundle-SymbolicName: a.b.c.d.win32.win32.x86`  
`Bundle-ClassPath: lib/jna-4.1.0.jar, . `  
`Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))`  
`Bundle-NativeCode: xxx.dll;processor=x86; osname=win32,*`  
`Fragment-Host: a.b.c.d

xxx.dll直接位于a.b.c.d.win32.win32.x86片段项目中。

host:
Bundle-SymbolicName: a.b.c.d

错误我得到: 线程“main”中的异常java.lang.UnsatisfiedLinkError:无法加载库'xxx.dll':资源路径中找不到本机库(win32-x86 / xxx.dll)

需要一些帮助。

1 个答案:

答案 0 :(得分:1)

我正在使用jna-4.2.1 我下载了源代码并进行了调试 我发现JNA引入了基于平台的前缀。

String libname = name.startsWith("/") ? name : NativeLibrary.mapSharedLibraryName(name); String resourcePath = name.startsWith("/") ? name : Platform.RESOURCE_PREFIX+ "/" + libname;

所以我将我的xxx.dll包含在win32-x86文件夹中 但仍然Native.loadLibrary(xxx.dll,...)应该以其原始名称引用dll。

感谢您的支持。