关于Java:Ant无法删除Windows上的某些文件

关于Java:Ant无法删除Windows上的某些文件

Ant is not able to delete some files on windows

我有一个蚂蚁建立,使目录,调用javac和所有常规的东西。 我遇到的问题是,当我尝试执行干净操作(删除生成的所有内容)时,删除任务报告无法删除某些文件。 当我尝试手动删除它们时,效果很好。 这些文件显然无法通过任何其他进程打开,但是ant仍然无法删除它们。 我能做什么?


我曾经遇到这个问题。
这是因为我尝试删除的文件是另一个任务的类路径的一部分。


这取决于 ...

  • Ant进程没有足够的权限来删除文件(通常是因为它们是由其他用户(可能是系统用户)创建的)。尝试使用运行方式以管理用户身份运行Ant脚本。
  • 当进程死机或被杀死时,Windows确实无法清理文件锁。因此,Windows认为该文件已被已终止(或已终止)的进程锁定。在这种情况下,除了重新启动之外,您无能为力。
  • 获得更好的工具来检查系统状态。我建议下载SysInternals工具并使用它们,而不要使用默认的Windows等效工具。


使用Ant Retry任务对我有帮助。
我刚刚将其包裹在"删除任务"周围。


我遇到了同样的问题。
我没有在计算机上设置任何类路径或运行防病毒软件。
但是,我使用的ANT版本是32位,而我安装的JDK是64位。
我安装了32位JDK,问题已解决。


您没有说您的构建是否以当前登录的用户身份运行。如果不是,explorer.exe或其他进程具有所示目录的事实也可能导致其被锁定。但是在相同的explorer.exe进程中将其删除将会成功。从http://ccollomb.free.fr/unlocker/尝试解锁,以查看哪些进程已锁定文件/目录。


1.8.0之前的Ant版本存在一个错误,该错误会导致删除操作期间出现随机错误。尝试使用Ant 1.8.0或更高版本。

您可以在这里查看错误详细信息https://issues.apache.org/bugzilla/show_bug.cgi?id=45960


Ant进程中是否有某些东西使文件(或目录)保持打开状态?这将导致您可以在运行ant之后而不是在运行期间删除它们的情况。


就我而言,我的蚂蚁清理无法从Eclipse中失败,无法删除构建文件。我不时看到这一点。通常会重复尝试成功。这次没有
尝试从命令行运行蚂蚁清理,失败无法删除"无法删除"。
一定是Eclipse保留了问题文件,当我退出Eclipse时,cmd行能够删除OK。


自从我切换到Microsoft Windows 10以来,我经常看到这种问题,在删除文件之前立即重命名文件可以为我解决:

1
2
<rename src="file.name" dest="file.name.old"/>
<delete file="file.name.old" />

就我而言,我停止从任务管理器运行Java进程,然后重新运行Ant构建文件。该文件能够删除,并且构建成功。


我遇到了这个问题,因为蚂蚁试图删除的文件正被其他服务/进程使用。
我停止了该服务,然后运行了ant build脚本。


您需要在Windows中手动将其删除。它为我工作。 (通常,要删除的文件是jar的较早版本。例如:如果存在httpcore.4.2.5.ja5r和httpcore.4.3.jar,它将尝试删除4.2.5.jar。)


我也有同样的问题,并尝试过手动删除构建目录。最后,我通过将项目的.jar工件重命名为与项目名称本身不同的名称来解决此问题。例如:我的项目是Portal,而我的ant构建脚本用于生成portal.jar,而eclipse ant无法删除此portal.jar。当我更改build.xml以将.jar生成为portalnew.jar时,eclipse下次可以删除此portalnew.jar。希望这可以帮助。


我最近经常遇到这个问题,而且是随机的。一次有效,下次无效。我正在使用NetBeans(以防万一),并且在build.xml中添加了许多额外的任务。我在-post-jar任务中遇到了这个问题。当我在文件上调用unjar然后删除时,就会发生这种情况。我怀疑NB正在尝试扫描jar,这会导致其锁定。

对我有用的是立即在-post-jar的开头重命名jar并向其中添加.tmp扩展名。然后,我在临时文件上调用unjar。完成后,我重命名回所需的jar名称。


如果您安装了git

在git bash shell中打开目录(从头开始搜索git bash)。 然后键入bash命令以删除文件
喜欢

1
rm -r filename.xyz


推荐阅读