Search code examples
javamavenjnatess4j

tess4j jna UnsatisfiedLinkError


I m using Tess4J under maven, I already used the pom dependency everything is well downloaded in the .m2 repository, I also downloaded the tess4j jna wrapper from source forge. But what ever I do I m still getting this exception :

Looking in classpath from sun.misc.Launcher$AppClassLoader@73d16e93 for /com/sun/jna/win32-x86-64/jnidispatch.dll
Found library resource at jar:file:/C:/Users/user/.m2/repository/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar!/com/sun/jna/win32-x86-64/jnidispatch.dll
Looking for library 'libtesseract305'
Adding paths from jna.library.path: C:\Tess4J\lib\win32-x86-64;C:\Tess4J\lib;C:\Users\user\AppData\Local\Temp\tess4j\win32-x86-64
Trying C:\Tess4J\lib\win32-x86-64\libtesseract305.dll
Adding system paths: []
Trying C:\Tess4J\lib\win32-x86-64\libtesseract305.dll
Looking for lib- prefix
Trying liblibtesseract305.dll
Looking in classpath from sun.misc.Launcher$AppClassLoader@73d16e93 for libtesseract305
Found library resource at jar:file:/C:/Users/user/.m2/repository/net/sourceforge/tess4j/tess4j/3.3.1/tess4j-3.3.1.jar!/win32-x86-64/libtesseract305.dll

Exception in thread "main" java.lang.UnsatisfiedLinkError: Le module spécifié est introuvable.

at com.sun.jna.Native.open(Native Method)
at com.sun.jna.Native.open(Native.java:1759)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
at com.sun.jna.Library$Handler.<init>(Library.java:147)
at com.sun.jna.Native.loadLibrary(Native.java:412)
at com.sun.jna.Native.loadLibrary(Native.java:391)
at net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(LoadLibs.java:75)
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:42)
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:367)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:280)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:212)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:196)
at com.mycompany.mavenproject1.NewClass.main(NewClass.java:20)

I tried to add -Djna.library.path to my libtessract305.dll but no success

what should I do ?


Solution

  • It depends on which version of Tess4j, you are currently using .

    Let's say, version 3.2.1 worked well with 2010 VC++, but for version 3.4.1, you need to upgrade to VC++ 2013.

    Its is all about the compatibility of the DLLs with the VC++ version. Use Visual C++ 2017 Redistributable for Tess4J 4.x.