首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.IllegalAccessError:尝试从Tess4jTest.TestTess类访问方法net.sourceforge.tess4j.Tesseract.<init>()V

java.lang.IllegalAccessError:尝试从Tess4jTest.TestTess类访问方法net.sourceforge.tess4j.Tesseract.<init>()V
EN

Stack Overflow用户
提问于 2016-08-26 10:53:04
回答 2查看 1.8K关注 0票数 0

我用TesseractMirth.When中做了一个Tesseract项目,我从Mirth运行jar文件,我得到这个error.When,我搜索它,我发现有一个init()方法,而且它也是Tesseract.java中的一个受保护的空白。我认为这可能是错误的原因。我该怎么办?非常感谢你的帮助。

代码语言:javascript
复制
package Tess4jTest;

import java.io.File;
import java.io.IOException;
import net.sourceforge.tess4j.*;

public class TestTess {

public static String Tc;
public static String phone;
public static String date;


public static void main(String[] args) {
    //System.out.println(returnText("C:\\Users\\Nevzat\\Desktop\\deneme.pdf"));
}

public static String returnText(String fileName){

    File imageFile = new File(fileName);
    if(imageFile.exists()){
        Tesseract instance = new Tesseract();
        instance.setDatapath("C:\\imageRAD\\Onam\\tessdata");
        String result = null;
        try {
            result = instance.doOCR(imageFile);
        } catch (TesseractException e) {
            System.err.println(e.getMessage());
        }
        if(result!=null){

            int i=result.indexOf("Numarasn: ");
            int j=result.indexOf("Tel No:");
            int k=result.indexOf("Bilgllendirme Tarihl:");

            Tc = result.substring(i+10, i+21);
            phone = result.substring(j+8,j+23);
            date = result.substring(k+22,k+32);
            //System.out.println(result);
        }else{
            return "Null Error!";
        }

    }else{
        return "Does not found a file!";
    }

    return Tc+","+phone+","+date;
}

public static String returnTC() throws IOException{
    return Tc;
}

public static String returnPhone() throws IOException{
    return phone;
}

public static String returnDate() throws IOException{
    return date;
}

}
EN

回答 2

Stack Overflow用户

发布于 2016-08-26 12:43:36

当尝试使用私有构造函数创建对象时,会出现错误。(<init>()是没有参数的构造函数的名称)

查看tess4j源代码,我发现了一个包含以下文档的方法:

  • @在2.0版时不再推荐使用默认构造函数。

查看2.0之前的源代码,会发现默认的构造函数是私有的。

这意味着您的问题很可能是针对比2.0更新的版本进行编译的,但是您的环境运行的是一个比2.0更旧的版本。

要么更新您的环境,要么降低您构建的库的级别以修复它。

票数 1
EN

Stack Overflow用户

发布于 2016-08-29 08:14:35

我解决了错误,完成了计划。我一步一步地提到

1. tess4j必须使用正确的jar文件。 2.通过构建路径将java项目全部添加到tess4j-3.2.1.zip中,tess4j-3.2.1.jar除外。 3.从中添加tess4j-1.5.jar 4.添加java项目的tessdata文件夹、ghost4j-0.5.1.jarjna-4.1.jartess4j.jar和jar文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39164580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档