2017-09-20 1 views
0

Maven이있는 Spring MVC와 OCR 용 tess4j를 사용하는 일부 기능을 사용하는 웹 응용 프로그램을 개발 중입니다. java.lang.UnsatisfiedLinkError : Le 모듈 특정 introuvable.on Tess4J

내 dev에 환경 :

  • 이클립스 Neon.3
  • OS : 나는의 최신 버전을 다운로드 승리 서버 2008R2
  • JVM 64 비트
  • 아파치 9

tomecat Tess4J에서 http://tess4j.sourceforge.net/ 및 일식 가져 왔습니다. 나는이 URL을 다음하고, 나는 모든 단계를 따라하지만, 내가하려고하면 다음과 같은 오류 얻고 그것을 실행 : 나는 몇 가지 튜토리얼을 시도하고 내가 추가

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) 

을 : .MV C++ 2015 재배포 (64) . C : \ Program Files (x86) \ Apache Software Foundation \ Tomcat 9.0 \ temp \ tess4j \ win32-x86-64에 추가하십시오.

여전히 오류가 있습니다.

답변

0

본질적으로 시스템에서 'spécifié'라는 고유 모듈을 찾을 수 없다는 것입니다. (프랑스어로는 읽을 수 없습니다)로드해야합니다. 이제 역학은 이것과 같습니다. 어딘가에로드 중일 때 (아마도 병에있을 때)

System.loadLibrary("spécifié"); 

네이티브 라이브러리가 PATH에 없기 때문에 실패합니다. 따라서 간단한 해결책은 모듈을 PATH에 놓는 것입니다. Windows 환경 인 경우 모듈은 spécifié.dll이라는 DLL 파일이됩니다. 이 파일은 경로에 있어야합니다 (예 : PATH = C : \ xyz \ spécifié.dll 설정).

시도해보고 확인하십시오. 의 대답에 대한

+0

덕분에이 같은 내 코드에 경로를 설정 한 : 공용 클래스 테스트 { \t 공공 정적 무효 메인 (문자열 []에 args) { \t \t System.setProperty를 ("jna.library.path", " src/main/resources/win32-x86-64 "); \t \t 파일 imageFile = 새 파일 ("eurotext.tif"); \t \t ITesseract 인스턴스 = 새 Tesseract(); \t \t \t \t 시도 { \t \t \t 문자열 결과 = instance.doOCR (imageFile); \t \t \t System.out.println (result); \t \t} catch (TesseractException e) { \t \t \t System.err.println (e.getMessage()); \t \t} – kajede

+0

명령 프롬프트에서 수동으로 경로를 설정하고 'java'명령으로 클래스를 실행하십시오. 또는 eclipse를 사용하는 경우 환경 변수로 이동하여 경로를 설정 한 다음 Eclipse를 다시 시작하십시오. 문제는 VM이 ​​PATH에서 파일을 찾을 수 없다는 것입니다. 일단 발생하면 VM이 작동합니다. – Ironluca

+0

"Le module spécifé"는 "지정된 모듈"을 의미합니다 ... * 문자 그대로 "spécifié"라는 모듈을 찾고 있지 않습니다. –