Runnable Jar中使用jna调用DLL文件,找不到指定模块

问题描述: Windows环境,使用tess4j.jar进行OCR识别,tess4j中使用JNA加载gsdll32.dll、liblept171.dll和…

问题描述:

Windows环境,使用tess4j.jar进行OCR识别,tess4j中使用JNA加载gsdll32.dll、liblept171.dll和libtesseract304.dll三个文件。

在Eclipse开发环境下,编译运行没有问题。打包成runnabs 6 Mle jar后,运行会有“找不到指定模块”异常,P C 5如图

Runnable Jar中使用jna调用DLL文件,找不到指定模块

调试过程:

dll文件依赖关系

libtesseract304.A | ] 3 . 3 Gdll文件依赖liblept171.dll,另外一个不清$ u X u d楚。

Runnable Jar中使用jna调用DLL文件,找不到指定模块

tess4j使用JNA加载DLL过程

分析tess4j使用JNA的源代码,tess4j.jar中包含以上三个dll文件,tess4j将三个dll文件从jar中拷贝到文件系统(C:\Users\sonN = Q g Y –ggeb\AppData\Local\Temp\tess4j\win321 ? v | a f i u-x86),然后“jna.library.path”属性设置为以上路径,_ B t – e执行Native.loadLibrary(“libtesseract304”, TessAPI.class)语句进行加载。

Demo调试

新建工程,使用JNA单独加载“libtess) + \eract304.dll”y g u Q y I 4 l ~进行调试。人为设置“jna.library.B 0 M vpath”属性的值为本地文件系统某一路径。开3 M y D h j 2启JNA的debug模式(System.setProperty(“jna.debug_load”,”true”))。

Runnable Jar中使用jna调用DLL文件,找不到指定模块

1. Eclipse开发环境下运行,能够找到libtesV ? ^ M ] j A N Sseract304.dll,成功加载w 9 ^ G l #

2. 打包成Runnable Jar后运行,报异常,如图。

Runnable Jar中使用jna调用DLL文件,找不到指定模块

疑问:尽管设置了“jna.library.path”,但仍然找不到。

3. 将三个dll文件放入Runnable Jar文件根目录下执行,能够找到libtesseract304.dll,但仍报异常,如图

Runnable Jar中使用jna调用DLL文件,找不到指定模块

回答

原创文章,作者:町子门户,如若转载,请注明出处:https://www.6fzz.com/13145.html

(0)
上一篇 2021年5月20日 上午12:47
下一篇 2021年5月20日 上午12:47

相关推荐

  • 这样的公司值得呆么?

    快3年的java开发经验,26岁,今年刚来北京,在当前这家公司快一年了,公司给租房子,所以一个月能剩下12k左右,但是在公司做的东西基本来讲就是一些cru…

    编程学习 2021年5月26日
  • css如何设置div的宽度

    css设置div的宽度的方法是,给div添加width属性,并将属性值设置为合适的值,例如【width:100px;】。我们还可以给div设置百分比宽度,如【width:50%;】。

    2021年5月18日
  • SpringBoot自动装配

    SpringBoot是对Spring的一种扩展,其中比较重要的扩展功能就是自动装配:通过注解对常用的配置做默认配置,简化xml配置内容。本文会对Spring的自动配置的原理和部分源码进行解析,本文主要参考了Spring的官方文档。 自动装配的组件 SpringBoot自动装配通过多部分组件协调完成, …

    编程学习 2022年1月6日
  • 全方位、多角度理解 ThreadLocal,还有谁不会??

    来源:blog.csdn.net/zzg1229059735/article/details/82715741 本次给大家介绍重要的工具ThreadLocal。讲解内容如下,同时介绍什么场景下发生内存泄漏,如何复现内存泄漏,如何正确使用它来避免内存泄漏。 ThreadLocal是什么?有哪些用途? …

    编程学习 2022年1月6日
  • 互联网商业模式:收费和免费

    选择模式,分清敌我 毛**说,谁是我们的敌人,谁是我们的朋友,这个问题是革命的首要问题。分清敌我,同样也是做企…

    2021年6月27日
  • web前端基础入门教程(非常详细)HTML+CSS+JavaScript

    每一个学习前端的人对于前端三剑客《html+css+JavaScript》都不会陌生,可以说这是前端的世界,就没有前端解决不了的,而在前端的世界里就没有javascript实现不了的。 关于JavaScript有一句话:凡是可以用javascript来写的应用,最终都会用javascript,jav …

    编程学习 2021年11月8日
  • 雅可比行列式迭代及优化(golang版)

    最近遇到的一个求解雅可比迭代的问题,这个计算方法在 python 中有现成的库,但是在 golang 中没找到相应的实现。 于是根据雅可比行列式的推导实现了一个 golang 版本的雅可比迭代。 ​ 雅可比迭代 推导 一个 \(N \times N\) 的线性方程组 。 \(Ax = b\) 其中: …

    编程学习 2022年1月4日
  • 05.ElementUI源码学习:项目发布配置(github pages&npm package)

    项目第一个组件已经封装好,说明文档也已编写好。下面需要将说明文档发布到外网上,以此来展示和推广项目,使用 Github Pages功能实现。同时将组件发布之 npm 上,方便引用。 …

    编程学习 2021年5月30日
  • 一篇在知乎被狂赞的文章为何会在今日头条被骂得要死?

    如果你有一篇文章,在知乎上被赞的很猛,而在今日头条上被骂的很惨是种什么体验? 如果你有一篇文章,在知乎上被赞超…

    2021年6月27日
  • 产品经理学习笔记,刷爆朋友圈的手绘本

    Blues参加了混沌学院研习社组织的产品经理课程分享,分享的同时也是在学习。 两天时间,在上海,四场分享: ❶…

    2021年6月27日

发表评论

您的电子邮箱地址不会被公开。