java - 无法重命名或删除文件实例

标签 java debugging maven-2 maven-plugin io

我正在编写一个 Maven 插件,它使用 File.delete()File.renameTo(File) JDK 方法删除和重命名各种文件。

大约每隔一次我运行该插件时,其中一个操作就会失败,并且每次失败时都会出现一个无法删除或重命名的不同文件。对于无法删除文件的一个明显的解释是另一个进程正在使用它(我在 Windows 上运行),但我不知道哪个进程可能负责。该问题无法一致重现的事实表明存在线程问题,但据我所知,Maven 插件是在单个线程中运行的。很难获得有关问题原因的任何信息,因为上面提到的方法不会抛出异常,它们只是返回 false。

有没有办法以编程方式检测锁定的文件和持有锁定的进程的名称?或者,如果有人对如何调试此类问题有其他建议,请继续发送。

谢谢, 唐

最佳答案

Handle可以让您找出哪些进程拥有文件句柄。

示例输出(它是一个命令行实用程序):

C:\Users\Jon\Downloads\Handle>handle Test.cs

Handle v3.42
Copyright (C) 1997-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

Test.exe           pid: 6088    190: C:\Users\Jon\Test\Test.cs

关于java - 无法重命名或删除文件实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3474932/

相关文章:

java - 无法连接到远程虚拟机

linux - 为什么 Linux 内核的 pr_debug 没有给出任何输出?

java - maven javadoc -overviewsummay.html 未更新

java - 关于maven的问题

.net - 为什么 .NET 中不需要 Maven?

java - 如何以干净的方式获取字符串的第二行?

java - 无法连接到我的 tomcat 8 websocket

java - 同步相对于锁 API 的优势

c++ - 如何在 kdevelop 中设置 llvm?

java - 无状态注释是否会传播到抽象类的扩展?