Java TikaException:无法关闭临时资源-如何修复?
我在Windows 10、jre 1.8.0µ上使用Apache Tika,我使用Maven导入了Tika,并具有以下依赖项: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> &
<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.