Eclipse 无法删除错误

Posted

技术标签:

【中文标题】Eclipse 无法删除错误【英文标题】:Eclipse could not delete error 【发布时间】:2011-02-09 07:08:29 【问题描述】:

我正在使用 Eclipse 开发一个项目,现在一切正常,但上次我尝试构建它时,它返回了错误,

“由于“Could not delete '/Torpedo/bin/bin',该项目未构建。”修复问题,然后尝试刷新此项目并构建它,因为它可能与 Torpedo Unknown Java Problem 不一致”

它删除了我的 bin 文件夹,该文件夹存储了程序所需的所有图像和东西。 (幸运的是我有备份)。我试过用谷歌搜索它并尝试了我找到的每一个解决方案,但没有任何帮助,而且他们中的大多数人建议手动删除该文件夹,但我不能。 我该怎么办?

【问题讨论】:

为什么不能手动删除?这是一个比 Eclipse 无法删除它更大的问题。 请注意:您的图像和其他资源不应仅驻留在 bin 目录中。它们应该位于“源”路径中(带有源代码或例如“资源”文件夹)。 Eclipse 会在编译期间将它们复制到 bin 目录中。否则,当清理发生时,它们将不可避免地丢失。 我不断得到这个。它真的很烦人。我从防病毒软件中排除了工作区。如果我在文件系统中去那里,我可以删除它。所以想出更好的主意,赢得赏金。错误消息:由于“无法删除 '..../classes/...'.”,该项目未构建。修复问题,然后尝试刷新此项目并构建它,因为它可能不一致 关于这个问题的相关Eclipse问题:292128,309235,332607 感谢西蒙 (+1) 的链接。投票给伙计们。投票可以产生影响。请花点时间,我们可以完成。 【参考方案1】:

我在 Windows 上经常看到这种情况。我认为这是 Eclipse 中的错误或竞赛,可能是与病毒检查程序的竞赛,它不喜欢立即删除,然后写入已删除的同一文件。我使用的修复方法是使用菜单栏中的 Project -- Clean。

@Ash 就在上面的 cmets 中,您的输出文件夹中不应该有资源。为了避免这种情况,我总是将输出文件夹的名称从“bin”更改为更明显的名称,例如“eclipse/classes”

【讨论】:

我尝试了清洁,但没有帮助。我不得不将文件夹从 bin 目录中移出并将其类路径 var 更改为新位置【参考方案2】:

我经常遇到这个问题,特别是在 Windows 7 下部署到 Tomcat 等时。命令行版本的 maven 也发生在我身上,所以不仅仅是 Eclipse 有这个问题。

根本原因是某些东西正在占用文件句柄。当我在我的 PC 上禁用 Windows 搜索/索引时,大多数问题都消失了,但有时问题仍然存在。

要追踪发生了什么,您需要下载Process Explorer(我遇到过的最有用的程序之一)。这使您可以准确查看 PC 上正在运行的内容、已打开的文件、进程的性能、正在运行的 CPU 量、正在执行的 IO 量等。当您有无法删除的文件时,您可以Find->Find Handle or DLL,并输入部分名称,它会告诉您打开它的人。您并不总是及时发现它,但通常足以知道罪魁祸首。

【讨论】:

是的。可能有一些错误处理插件可以打印将文件锁定到日志中的过程,会很好。 是的,不幸的是,受害的不仅仅是 Eclipse。有时,我必须执行 3 到 4 次 mvn clean 才能真正删除所有内容。 无论如何要自动化这个过程?我几乎必须在每个 Eclipse 清理几个文件时都这样做,因为 Eclipse 会阻止它们......【参考方案3】:

什么对我有用:

    关闭 Eclipse。 转到您的bin 文件夹并删除所有内容(不是文件夹本身)。 启动 Eclipse。 转至 Project -> Clean 清理您的项目。 请务必查看Project -> Build automatically

【讨论】:

【参考方案4】:

这是一个Windows 7 问题。我们这里生成了很多代码,在生成代码的时候遇到同样的问题 [两步:

    XSL 转换和 pretty-printing],Windows 进程之一,可能是Explorer.exe,介入。这种情况在 200 次中只会发生一次。

在 Linux 和 Windows XP 上,我们既没有 Eclipse 的问题,也没有生成文件的问题。

即使以管理员身份运行代码生成和 Eclipse,我们也确实面临这些问题。

我们已向 Microsoft 寻求支持,但到目前为止我们得到的建议是“重新启动!”。没救了!

【讨论】:

【参考方案5】:

在 Windows 下为我删除内容的问题通常归结为以下两种情况之一:

文件正被程序打开。这包括 JVM。这通常不会自行消失。 计算机上的防病毒程序已打开文件以执行任何需要执行的操作。这通常会在一段时间后消失。我经常重新创建工作区,如果这种情况发生得太快,Eclipse 会抱怨它无法删除文件。

【讨论】:

【参考方案6】:

检查是否有任何其他进程正在使用目标“bin”文件夹中的文件,并将其杀死。这通常发生在从 Eclipse 调用的其他 Java 进程中。

【讨论】:

【参考方案7】:

我在使用 Windows XP/Vista 时遇到了类似的问题。在我的情况下,文件的总长度超过 255 个字符。

/abcd/abcd/abcd/abcd..../abcd

我找到的唯一解决方案是重命名目录以使其短于 255 个字符。

/a/a/a/a/a/a/a.../a

之后,您可以删除它。这是 Windows API 中的一个限制。文件系统可以管理超过 255 个字符,但使用 windows api 的资源管理器不能。

【讨论】:

【参考方案8】:

我刚遇到这个问题,是 TGitCache.exe 锁定了 bin 文件夹。如果您使用 TortoiseGit,只需终止 TGitCache.exe 进程即可。

【讨论】:

【参考方案9】:

我刚遇到这个问题...这是因为我在 BIN 树的文件夹中为我正在构建的项目打开了一个命令行会话(DOS 屏幕...)...我想通过命令行运行.class文件。

解决方案是简单地 cd 回到 bin 文件夹,以便“清理”可以删除并重新创建这些目标文件夹。

【讨论】:

【参考方案10】:

这只是发生在我身上。当它发生时,我关闭了用户访问控制(UAC)(windows vista 32 位)。我重新打开 UAC,重新启动 vista,然后错误消失了。反直觉的是,关闭 UAC 后,删除 bin/net 目录会失败,但重新打开 UAC 后它可以工作。去图吧。

【讨论】:

【参考方案11】:

我遵循的过程是

    关闭日食 浏览文件夹 删除

【讨论】:

【参考方案12】:

我最近一直有这个问题。在我将工作区设置为自动从磁盘重新加载所有资源后,我意识到它开始发生了。这可以从菜单中进行配置:Preferences > General > Workspace。

【讨论】:

【参考方案13】:

我正在从事一个开源项目,这个特殊的问题真是让人头疼,最终浪费了 4 个小时。

eclipse 想说的是:

我没有访问特定 bin 文件夹的权限。 如果你使用的是linux,那么:

    打开你的终端 转到您将项目导入到 Eclipse 的目录 和 chmod 777 -R project_folder 再次检查,如果问题仍然存在,请转到项目中 bin 所在的文件夹并执行相同操作 - chmod 777 -R bin_folder 现在打开 Eclipse,清理并再次构建。它应该运行顺利

【讨论】:

是 3. chmod 777 -R Project_Folder 5. chmod 777 -R Bin_Folder,出现错误的地方 谢谢。这对我有用。我在 Linux 中使用 Eclipse 并运行了 'sudo chmod 777 -R my_workspace'【参考方案14】:

解决方案(对我而言):在我的情况下,无论从何处链接该文件都不再存在,因此无法找到该文件(很明显)。所有被引用的文件都位于我的 src 文件夹中某处或其他本地项目中的路径中。到目前为止,除了以下内容之外,没有什么对我有用...

我是如何删除损坏的链接的。

打开 Eclipse,打开项目 转到引用文件的文件夹(在资源管理器中)。 创建一个与要创建的文件同名的文件(空白/空) 引用(即:“File.java”)。 返回 Eclipse 并刷新项目。 现在您可以删除正在找到的文件。

链接已删除。

这是一个肮脏的解决方法。不过,我确实希望这个问题得到解决。

【讨论】:

类似地,我的问题出在版本控制中已重命名的目录,因为情况不同(RefHelps 到 refhelps),它可以“不再访问”。我将文件夹重新命名为之前的名称,然后在 Eclipse 中将其重命名,这样我就可以继续了。我尝试了其他大多数建议,包括 Process Explorer,但没有成功。【参考方案15】:

只是增加知识库。我有这个问题。重新启动 eclipse 或 windows 没有修复它。

关闭 Eclipse 后删除父目录中的 .metatdata/.lock 确实解决了问题。 iirc,有时你需要重启windoze。

【讨论】:

【参考方案16】:

1 - 前往 Project -> Clean 清理您的项目。

2 - 确保选中 项目 -> 自动构建

但在此之前,请检查您项目的 srctarget 文件夹的权限,eclipse 需要读取和写入这些文件夹,然后释放它的权限.您的问题将得到解决。

【讨论】:

【参考方案17】:

当项目目录的权限被更改时,我遇到了这个问题。确保用户对项目目录具有写入权限。如果没有写入 Project 目录的权限,则 eclipse 将无法删除/创建 Bin 文件夹。

为了解决这个问题,我给了项目目录的写权限。

例如:sudo chmod -R 777 /MyProject/code(在我的情况下,我使用的是 Ubuntu,根据操作系统,请确保您授予写入权限)

【讨论】:

【参考方案18】:

我遇到了同样的问题。重新启动 Eclipse 后,我完成了一次删除,然后后续删除失败。我最后做的是重新启动 Eclipse,然后 Ctrl + 单击我想删除的每个项目。然后我一下子把它们全部删除了,效果很好。

【讨论】:

【参考方案19】:

在 Windows 上,我以管理员权限打开了 eclipse。问题已经解决了。

【讨论】:

【参考方案20】:

我还没有阅读所有以前的回复,但我也有同样的问题。我在 Ubuntu 12.10、64 位和 SSD 上运行 Eclipse 4.1。我意识到当我的计算机因打开的 Eclipse 崩溃时,总是会出现这个删除问题。我设法通过删除特定的索引文件来解决这个问题。例如,我的工作区日志文件(位于/.metadata/.log)已满,出现EOFException,表示无法读取某些元数据,例如

!ENTRY org.eclipse.ui.ide 4 4 2012-12-13 13:25:35.988
!MESSAGE Problems occurred refreshing the selected resources.
!SUBENTRY 1 org.eclipse.core.resources 4 567 2012-12-13 13:25:35.988
!MESSAGE Could not read metadata for '/home/xyzworkspace/.metadata/.plugins/org.eclipse.core.resources/.projects/server-test/.indexes/7/9c/properties.index'.
!STACK 0
java.io.EOFException
    at java.io.DataInputStream.readByte(DataInputStream.java:250)
    at org.eclipse.core.internal.localstore.Bucket.load(Bucket.java:298)
    at org.eclipse.core.internal.properties.PropertyBucket.load(PropertyBucket.java:258)
    at org.eclipse.core.internal.localstore.Bucket.load(Bucket.java:274)
    at org.eclipse.core.internal.localstore.BucketTree.internalAccept(BucketTree.java:98)
    at org.eclipse.core.internal.localstore.BucketTree.internalAccept(BucketTree.java:109)
    at org.eclipse.core.internal.localstore.BucketTree.internalAccept(BucketTree.java:109)
    at org.eclipse.core.internal.localstore.BucketTree.accept(BucketTree.java:76)
    at org.eclipse.core.internal.properties.PropertyManager2.deleteProperties(PropertyManager2.java:102)
    at org.eclipse.core.internal.properties.PropertyManager2.deleteResource(PropertyManager2.java:111)
    at org.eclipse.core.internal.resources.Resource.deleteResource(Resource.java:918)
    ... here goes the rest of the stack trace...

删除这个特定的索引文件并重新启动 Eclipse 后,一切正常。对建议是否有效的任何反馈表示赞赏。

【讨论】:

请发布新问题,这不是问题的答案 实际上这是对最初问题的回答,因为我收到了完全相同的错误消息。【参考方案21】:

我必须先结束 chromedriver,然后才能清理我的项目。任务管理器中有需要关闭的进程。

【讨论】:

【参考方案22】:

Process Explorer显示无法删除的android Java .jar文件被Eclipse的子进程javaw使用...

这似乎有问题。

解决方法是关闭 Eclipse 并从资源管理器中删除文件...

【讨论】:

【参考方案23】:

我按照以下步骤摆脱了这个:

关闭日食 进入任务管理器-->进程-->java.exe-->结束进程 选择javaw.exe-->结束进程 然后去项目位置删除它 启动eclipse并删除项目

干杯...就是这样..

【讨论】:

【参考方案24】:

我遇到了同样的问题:无法清理/重建 Eclipse 项目,因为无法删除我的类输出文件夹。

我关闭了 Eclipse 并尝试删除该文件夹。 Windows 抱怨它被其他应用程序使用。

在 Windows 上,我从 Windows / 搜索栏运行 resmon.exe。然后进入 CPU 选项卡/关联句柄,我搜索该文件夹路径,并从 OUTLOOK 中找到它的句柄。我从该路径发送了一封带有文件的邮件,看来 OUTLOOK 保留了它。删除句柄条目后,一切又恢复了。

【讨论】:

【参考方案25】:

有时只需清理项目并重建它即可解决。这对我以前有用。

此外,单击“项目”选项卡中的“自动构建”通常更便于解决小问题。

【讨论】:

【参考方案26】:

它对我有用:

    关闭 Eclipse。 从项目中的 Eclipse 文件夹中删除类中的所有数据。 打开 Eclipse。 团队 -> 清理

【讨论】:

【参考方案27】:

我通过禁用 Windows 搜索索引来解决此问题。我似乎记得很久以前我尝试使用 Windows 文件资源管理器搜索我的项目文件夹。我猜从那时起,windows 一直通过扫描文件夹来保持它的搜索索引是最新的,现在正在用 eclipse clean 撞头。

禁用:

    控制面板 管理工具 服务 查找“windows 搜索” 禁用它

由于windows搜索被破坏了,我反正不使用它。我使用agent ransack 进行搜索。

【讨论】:

【参考方案28】:

更新 Spring Boots!

每当我对 JSP 或资源(css、js、图像)进行更改时,我的 spring 工具套件都会引发此错误 [Windows 7]。虽然它允许保存一次以反映更改,但第二次,STS 会抛出无法删除我更改的文件的错误[基本上无法将文件移动到 bin 文件夹]。我必须停止应用程序,执行项目 -> 清理以消除错误,进行更改并且必须启动应用程序。进程浏览器说javaw 拥有bindirectory 上的句柄。

我尝试了所有作为答案列出的建议 - 重新创建工作区、检查项目引用、更新我的 Spring 工具套件、禁用 Windows 搜索、索引等。但没有一个奏效。

最后,我将弹簧靴从 1.4.0 更新到 1.5.4,错误消失了。因此,如果您使用 Spring Boots 的任何人遇到此问题,请检查您的版本并更新。您可能还需要添加 spring-boot-devtools 以启用与最新 Spring Boot 版本的热插拔。

【讨论】:

【参考方案29】:

我去了 Java Build Path ->Source (tab) ,将 Default Output 文件夹的路径更改为其他一些文件夹,例如 customerConfig/bin 到 customerConfig/bins ,进行了构建,错误消失了,然后又返回并改回customerConfig/bin

【讨论】:

以上是关于Eclipse 无法删除错误的主要内容,如果未能解决你的问题,请参考以下文章

我无法卸载 Eclipse IDE,所以我从我的 PC 中删除了所有与 Eclipse 相关的文件。现在我无法重新安装它。我不断收到这个奇怪的错误

通过连接到 MS Access 的 Java Eclipse 无法使用删除查询删除记录

无法使用 Eclipse 中的 IvyDE 插件从常春藤缓存中删除过时的工件

Eclipse C/C++ CDT 烦人的问题

解决eclipse中无法删除Tomcat服务器中的项目,报maven is required and cannot be removed from the server错误情况

eclipse ant build failed 无法删除文件 lib\build