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

标签 java eclipse rcp jna

我在 eclipse 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': 在资源路径中找不到 native 库 (win32-x86/xxx.dll)

需要一些帮助。

最佳答案

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

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

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

感谢支持

关于java - 无法加载库 'xxx.dll' : Native library (win32-x86/xxx. dll) 在资源路径中找不到 (JNA + DLL + eclipse rcp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917065/

相关文章:

java 类和数据库查询

java - 无法解析类型 org.eclipse.core.runtime.IConfigurationElement

java - 如何在 Eclipse PDE 中表达项目间依赖关系

java - 将字符串拆分为仅 3 个字符。 java

java - 在 Java 中使用 boolean 值

c - hdf5 示例代码 h5_rdwt.c 不起作用

java - 在 Eclipse 中构建 Drools 4 项目的问题

Java - Eclipse 编译器合规性级别 1.6 未按预期工作

java - 我可以更改用于注入(inject)处理程序的上下文吗?

java - 被调用的泛型方法如何知道泛型返回的类型?