java用JNA加载dll文件问题最新办法(包括打成jar包)

您所在的位置:网站首页 抽取是什么 java用JNA加载dll文件问题最新办法(包括打成jar包)

java用JNA加载dll文件问题最新办法(包括打成jar包)

2023-08-31 23:04| 来源: 网络整理| 查看: 265

之前用过这种: 在这里插入图片描述

/** * dll加载工具类 */ public class DllIntoUtil { //加载dll文件的路径 public static final String loadLibrary= DllPath.DLL_PATH; public static class DllPath { public static String DLL_PATH; static { String path = (DllPath.class.getResource("/win32-x86-64/ManualSDK.dll").getPath()).replaceAll("%20", " ").substring(1).replace("/", "\\"); try { DLL_PATH = java.net.URLDecoder.decode(path, "utf-8"); // DLL_PATH = java.net.URLDecoder.decode(path, "GBK"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } }

然后接口类中调用工具类: 在这里插入图片描述

用这个在IDEA里面启动项目是正常的,然后打包后就经常报错dll找不到,虽然也有办法解决, 是将dll文件放入到C:\Windows\System32文件夹下,让其成为系统的文件。 或者将dll放在一个文件夹中,然后给所在文件夹目录路径添加成电脑的环境变量Path中。

但是不觉得很low吗?

最新解决办法

:不论是在IDEA中还是在打包后都管用

首先pom文件加载依赖

net.java.dev.jna jna 5.5.0 src/main/resources **/** false

然后在接口中直接添加dll的文件名就行。不需要后缀!!!我们引入的JNA依赖会自动去寻找,32位的系统它就会去需要32位的dll,64位的它就会去寻找64目录下的dll 在这里插入图片描述 但是目录最好按照标准格式创建 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3