10:15:24.633 [main] ERROR net.sourceforge.tess4j.Tesseract - null
java.lang.NullPointerException: null
at net.sourceforge.tess4j.Tesseract.dispose(Tesseract.java:826)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:239)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:194)
at com.ch.variflightspider.common.utils.Tess4jUtils.getImgContent(Tess4jUtils.java:114)
at com.ch.variflightspider.common.utils.Tess4jUtils.main(Tess4jUtils.java:123)
10:15:24.637 [main] ERROR com.ch.sunyong.common.utils.Tess4jUtils - Tess4jUtils getImgContent exception:
net.sourceforge.tess4j.TesseractException: java.lang.NullPointerException
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:245)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:194)
at com.ch.variflightspider.common.utils.Tess4jUtils.getImgContent(Tess4jUtils.java:114)
at com.ch.variflightspider.common.utils.Tess4jUtils.main(Tess4jUtils.java:123)
Caused by: java.lang.NullPointerException: null
at net.sourceforge.tess4j.Tesseract.dispose(Tesseract.java:826)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:239)
... 3 common frames omitted
希望遇到报错TesseractException空指针的同学能够先看到我这边文章,网上搜的解决方法一大推,比较靠谱的都是说少了某些Windows的dll文件,然后需要下载xxx.dll,xx.dll等。
这段记录我遇到的错误描述(没兴趣的可以直接看下面的解决方案):Eclipse写的代码可以正常运行,打成jar包运行报错,同事电脑相同代码使用Idea Intelij运行报错,jar包同样报错。猜测可能是Eclipse比较集大成,比如可以安装开发C等插件,有集成部分Windows的开发环境。
下面提供正规的解决方法,本人菜鸟,原理不懂,但解决方法绝对官方(当前时间是2019-07-26):
1. 访问sourceforge的Tess4j主页:http://tess4j.sourceforge.net/
如果你已经下载了tess4j的依赖包,也可以先详细阅读一下下载包里的readme文件,那里也有提供官方地址。然后如果你不着急,可以慢慢把官方文档各个菜单都读读,比网上搜的乱七八糟的文档有用得多。
2.在主页菜单里,选择Usage菜单,这个页面有一个Tutorial的链接:Development with Tess4J in NetBeans, Eclipse, and Command-line
这里的第一段就介绍了Tess4j运行在windows环境使用的dll文件,需要Visual Studio 2015/2017的支持,然后给出了下载链接:Visual C++ 2015 Redistributable or VC++ 2017 Redistributable。前者是下载vc_redist.x64.exe或者vc_redist.x86.exe的安装包地址,后者是下载VS开发工具的地址。
如果你已经下载不到了,给我留言吧,这里好像不能上传附件。