运行时exec命令在从终端运行但不是eclipse时工作

时间:2017-12-15 18:40:47

标签: java eclipse tesseract runtime.exec

我正在尝试使用tesseract在java中的图像上进行OCR。我意识到像Tess4J这样的包装器提供了更多的功能和东西,但我一直在努力让它正确设置。简单地使用Runtime运行单行命令实际上是我所需要的,因为这只是一个个人的小项目,不需要在其他计算机上工作。

我有这段代码:

20M.ToString("0.00");

当它直接从终端编译和运行时,它可以很好地工作。但是,当我在eclipse中打开完全相同的文件时,它会产生IOException:

import java.io.IOException; public class Test { public static void main(String[] args) { System.out.println(scan("full-path-to-test-image")); } public static String scan(String imgPath) { String contents = ""; String cmd = "[full-path-to-tesseract-binary] " + imgPath + " stdout"; try { contents = execCmd(cmd); } catch (IOException e) { e.printStackTrace(); } return contents; } public static String execCmd(String cmd) throws java.io.IOException { java.util.Scanner s = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A"); return s.hasNext() ? s.next() : ""; } }

发生了什么事?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

检查Eclipse中Test类的运行配置中的工作文件夹。我打赌它与你从终端运行相同程序的那个不同。