[英]Tesseract with 64-bit jvm
我在应用程序中使用了Tesseract,因此我可以从图像中提取文本。 这是我的代码,一切都很好
public class TestDriver {
public static void main(String []args){
String imagePath = "apps/Tess4J/eurotext.bmp";
File imageFile = new File(imagePath);
Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping
// Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping
try {
String result = instance.doOCR(imageFile);
System.out.println(result);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
}
但是我意识到我的.dll用于32位jvm,而我们使用的却是64。 这是我的错误:“线程“主”中的异常java.lang.UnsatisfiedLinkError:无法加载库'libtesseract302':找不到指定的模块。”
如果我应该保留64位,应该如何处理此问题?
您不能使用来自64位JVM的32位本机库(反之亦然)。 有两种可能的解决方案:
注意:您不需要重新编译Java代码。 Java字节码与JVM和操作系统的“位”无关。
从您的错误中我得到的想法是没有libtesseract302的逻辑链接。 以下是此错误的链接:
http://sourceforge.net/p/tess4j/discussion/1202294/thread/a3e57163
并切换到32位JVM,
您是否在使用Tess4J API? 还是使用“ tesseract”命令执行它?
我有相同的问题要克服,如下所示,我从命令行执行了tesseract。
Runtime.getRuntime().exec("tesseract " + fileName + " " + textFileName);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.