我有一个ant build构建目录,调用javac和所有常规的东西。 我遇到的问题是,当我尝试清理(删除所有生成的东西)时,删除任务报告无法删除某些文件。 当我尝试手动删除它时它工作得很好。 这些文件显然没有被任何其他进程打开,但是ant仍然无法删除它们。 我能做什么?
Ant无法删除Windows上的某些文件
Ant is not able to delete some files on windows
===============>>#1 票数:13 已采纳
我曾经遇到过这个问题。 这是因为我试图删除的文件是另一个任务的类路径的一部分。
===============>>#2 票数:9
这取决于 ...
- Ant进程没有足够的权限来删除文件(通常是因为它们是由不同的用户创建的,可能是系统用户)。 尝试使用“运行方式”以管理用户身份运行Ant脚本。
- 当进程死亡或被杀死时,Windows在清理文件锁时非常糟糕; 因此,Windows认为该文件被死亡(或被杀死)的进程锁定。 除了重启之外,在这种情况下你无能为力。
- 获得更好的工具来检查您的系统状态。 我建议下载SysInternals工具并使用它们而不是默认的Windows等效工具。
===============>>#3 票数:5
使用Ant Retry任务帮助了我。 我刚把它包裹在删除任务中。
===============>>#4 票数:3
我遇到了同样的问题。
我没有在我的机器上运行任何类路径或防病毒。
但是,我使用的ANT版本是32位,我安装的JDK是64位。
我安装了32位JDK,问题解决了。
===============>>#5 票数:3
您没有说您的构建是否以当前登录用户身份运行。 如果没有,explorer.exe或其他进程具有显示的目录的事实也可能导致它被锁定。 但是在同一个explorer.exe进程中删除它会成功。 从http://ccollomb.free.fr/unlocker/尝试Unlocker,查看锁定文件/目录的进程。
===============>>#6 票数:2
Ant进程是否存在打开文件(或目录)的内容? 这会导致您在运行ant后删除它们的情况,但不会在运行期间删除它们。
===============>>#7 票数:2
1.8.0之前的Ant版本有一个错误,导致删除操作期间的随机错误。 尝试使用Ant 1.8.0或更高版本。
你可以在这里看到bug的详细信息https://issues.apache.org/bugzilla/show_bug.cgi?id=45960
===============>>#8 票数:1
在我的情况下,我的ant clean从Eclipse失败,无法删除构建文件。 我不时看到这个。 通常会重复尝试。 这次没有。 尝试从命令行运行ant clean,失败无法删除“无法删除”。 它必须是Eclipse持有问题文件,当我退出Eclipse时,cmd行能够删除OK。
===============>>#9 票数:0
我最近经常遇到这个问题而且是随机的。 有一次它工作,下次它不起作用。 我正在使用NetBeans(如果重要的话),我已经为build.xml添加了许多额外的任务。 我在-post-jar任务中遇到了这个问题。 当我在文件上调用unjar然后删除时会发生这种情况。 我怀疑NB正试图扫描罐子,这会导致锁定。
对我有用的是立即在-post-jar的开头重命名jar并为其添加.tmp扩展名。 然后我在临时文件上调用unjar。 当我完成后,我重新命名为所需的jar名称。
===============>>#10 票数:0
我也有同样的问题,并尝试手动删除构建目录。 最后,我通过将项目的.jar工件重命名为与项目名称本身不同的名称来解决它。 例如:我的项目是门户网站,我的ant构建脚本用于生成portal.jar,其中eclipse ant无法删除此portal.jar。 当我更改build.xml以生成我的.jar作为portalnew.jar时,eclipse下次可以删除此portalnew.jar。 希望这可以帮助。
===============>>#11 票数:0
您需要在Windows中手动删除它。 它对我有用。 (通常要删除的文件是jar的旧版本。例如:如果存在httpcore.4.2.5.ja5r和httpcore.4.3.jar,它将尝试删除4.2.5.jar)
===============>>#12 票数:0
我遇到了这个问题,因为蚂蚁试图删除的文件被其他一些服务/进程使用。 我停止了服务,然后ant构建脚本确实运行了。
===============>>#13 票数:0
在我的例子中,我停止从任务管理器运行Java进程并重新运行Ant构建文件。 该文件能够删除和构建成功。
===============>>#14 票数:0
自从我切换到Microsoft Windows 10后,我经常看到这种方式的问题。在删除文件之前立即重命名文件为我解决了这个问题:
<rename src="file.name" dest="file.name.old"/>
<delete file="file.name.old" />
===============>>#15 票数:-1
如果你安装了git
在git bash shell中打开目录(在开始时搜索git bash)。
然后键入bash命令以删除文件
rm -r filename.xyz