Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TikaException:无法关闭临时资源-如何修复?_Java_Apache_Maven_Tesseract_Apache Tika - Fatal编程技术网

Java TikaException:无法关闭临时资源-如何修复?

Java TikaException:无法关闭临时资源-如何修复?,java,apache,maven,tesseract,apache-tika,Java,Apache,Maven,Tesseract,Apache Tika,我在Windows 10、jre 1.8.0µ上使用Apache Tika,我使用Maven导入了Tika,并具有以下依赖项: <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> &

我在Windows 10、jre 1.8.0µ上使用Apache Tika,我使用Maven导入了Tika,并具有以下依赖项:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.tika</groupId>
      <artifactId>tika-parsers</artifactId>
      <version>1.21</version>
    </dependency>
</dependencies>
我遇到了以下异常:

org.apache.tika.exception.TikaException: Failed to close temporary resources
    at org.apache.tika.io.TemporaryResources.dispose(TemporaryResources.java:174)
    at org.apache.tika.parser.ocr.TesseractOCRParser.parse(TesseractOCRParser.java:251)
    at test.test.App.OCRTest(App.java:46)
    at test.test.App.main(App.java:30)
Caused by: java.nio.file.FileSystemException: C:\Users\m\AppData\Local\Temp\apache-tika-2643805894084124300.tmp: The process cannot access the file because it is being used by another process.

tmp文件存在于Temp文件夹中,异常似乎来自无法删除它。在ApacheTika论坛上,有一个例子,其他人遇到了相同的异常,尽管是使用AutoDetectParser而不是Tesseract。他们的问题似乎与导入的JAR冲突,但即使只安装了ApacheTika库,我也遇到了这个问题


在使用Tika的AutoDetectParser时,我没有遇到这个问题,只是使用了TesseractOCRParser。任何关于如何修复异常的见解都将不胜感激

我在ApacheTika问题论坛()上发表了文章。问题来自于TesseractorParser关闭开放流的顺序-您可以在此处看到所做的更改:

目前,对于遇到此问题的任何人,都可以在本地为TesseractOCRParser创建子类,以包含上述更改,这些更改应该在下一个快照版本中推送


感谢Tim@Apache Tika

我在ApacheTika问题论坛()上发表了文章。问题来自于TesseractorParser关闭开放流的顺序-您可以在此处看到所做的更改:

目前,对于遇到此问题的任何人,都可以在本地为TesseractOCRParser创建子类,以包含上述更改,这些更改应该在下一个快照版本中推送


感谢Tim@Apache Tika

Sysinternal有一个工具,可以用来查看是什么使文件保持打开状态,也许可以尝试一下,看看是什么进程阻止删除临时文件?我使用Sysinternal的进程资源管理器查看了一下,唯一使文件保持打开状态的进程是javaw.exe。这听起来像是并发问题,但我似乎找不到冲突可能在哪里。Sysinternal有一个工具,可以查看文件打开的原因,也许可以尝试一下,看看是什么进程阻止删除临时文件?我使用Sysinternal的process Explorer查看了一下,唯一能让它打开的进程是javaw.exe。这听起来像是一个并发问题,但我似乎找不到冲突可能在哪里。感谢您在我们的追踪器上打开此问题!感谢您在我们的追踪器上打开此问题!
org.apache.tika.exception.TikaException: Failed to close temporary resources
    at org.apache.tika.io.TemporaryResources.dispose(TemporaryResources.java:174)
    at org.apache.tika.parser.ocr.TesseractOCRParser.parse(TesseractOCRParser.java:251)
    at test.test.App.OCRTest(App.java:46)
    at test.test.App.main(App.java:30)
Caused by: java.nio.file.FileSystemException: C:\Users\m\AppData\Local\Temp\apache-tika-2643805894084124300.tmp: The process cannot access the file because it is being used by another process.