Eclipse提示:“工作区正在使用中或无法创建,请选择其他工作区。”如何解锁工作区?

338

当我启动Eclipse时,它显示“无法锁定工作区”。

“由于其他Eclipse应用程序正在使用相关的工作区,因此无法启动产品。”或“工作区正在使用中或无法创建,请选择其他的。”

但我知道实际上并没有别的应用在使用该工作区。

我该如何“解锁”它呢?

28个回答

608

只需删除位于你的eclipse工作空间目录下的.metadata目录中的.lock文件即可。

注意事项- 如果你删除了.metadata文件夹,所有的偏好设置都将被删除。


3
我似乎无法删除它,因为它显示在Eclipse中已打开,但实际上并没有打开… - Anubha
35
请检查是否有与 Eclipse 相关的进程在后台运行,并将其终止。 - AlvaroSantisteban
7
谢谢Boris!虽然这不是一个合适的地方,但我现在不得不抱怨一下.. 为什么Eclipse不提供删除.lock文件的选项,甚至不提示其存在?什么样的IDE不能在同一个工作区中运行多个实例?如果删除.lock文件是唯一的解决方法,为什么Eclipse不会在启动时检查到没有其他实例正在运行后自动删除它呢?想一想,.lock文件将立即变得过时!最后,其他编辑器无论如何都可以打开工作区中的文件,所以这是毫无用处的。我真的很恨你,Eclipse! - pauluss86
9
“.lock”文件是一个隐藏文件,因此如果你用“ls”命令查找它,请别忘了加上“-a”选项:“ls -a .metadata”。(原文已经很简洁明了,翻译时保持了句子结构和意思不变,并尽量使用通俗易懂的语言。) - John McGehee
4
在删除锁定文件之前,请确保旧的Eclipse进程确实已经像您想象的那样被关闭了。 - Amir Uval
显示剩余9条评论

43

目前我看到过另外三种解决方案:

  1. 在 .metadata/ 目录下,删除 .lock 文件
  2. 如果方案 #1 不起作用,请尝试终止 javaw.exe 等进程,然后再删除 .lock 文件
  3. 如果方案 #1 和 #2 都不起作用,请在 .metadata/ 目录下删除 .log 文件,并仔细检查 .plugin/ 目录
  4. 对我来说,这个总是有效的:重定位 .metadata/,打开并关闭 Eclipse,然后覆盖回 .metadata/

解决方案的核心在于清理 .metadata 文件夹。


1
除非您的.metadata文件夹中有任何自定义公司插件数据,否则该数据将被“重置”为默认版本的数据,如果插件以前从未与Eclipse一起使用过。 - Darrin

18

打开任务管理器(在任务栏中右键单击),选择"进程"菜单栏,然后选择"eclipse.exe",点击"结束进程"


我正在使用STS,所以我杀掉了STS.exe。 - Pratapi Hemant Patel

12

"工作区正在使用中或无法创建,请选择其他工作区"问题的另一个可能原因是工作区的真实路径可能已更改

在我的情况下,工作区的真实位置已更改,但我使用符号链接使其看起来像在同一位置。我在日志中看到了错误,表明eclipse正在查看以前的“真实”位置,而不是跟随符号链接,这导致了错误。

在我的情况下,我只需将工作区移回其旧位置即可。


在Windows上有过类似的情况:我的同事开发时使用D盘,但我只有C盘,所以我使用了SUBST D: C:\来使用工作空间。第二天(下一次登录),Windows当然忘记了我做的SUBST,我就收到了错误消息。 - hvb

7

还有另一种情况,即工作区路径可能不存在。例如,如果您从另一个工作区导入了首选项,则某些导入的工作区地址将显示在“打开工作区”对话框中;如果您没有注意这些地址并尝试打开它们,则会遇到完全相同的错误。


7

我在管理员模式下运行 Eclipse,问题得到了解决。您可以在安装目录中的 eclipse.exe 上,[右键点击] -> 以管理员身份运行 来实现。我所处的工作环境是一个具有限制权限的 Win7 机器。我也尝试删除了 .lock.log 文件,但这没有帮助解决问题。可能多种方法结合起来才是解决方案。


如此简单,正是我所需要的!在Linux中从命令行运行:sudo eclipse - Joe

3

删除日志和.lock文件并没有解决问题,但-clean选项对我有用。


2

有时,如果你使用Windows操作系统,可能看不到所有的进程,或者在任务管理器中找不到罪魁祸首。我不得不点击“显示所有用户的进程”,然后找到这个java.exe进程,将其终止才能恢复我的工作区。


2

如果以上方法都无效,可能是因为有一个正在运行的Java应用程序。也许你之前打开和关闭了一些Java实例,但没有将它们关闭。

  1. 检查是否有任何Java实例在运行,如果有至少两个,则需要关闭其中一个。但是,大多数情况下我会关闭所有正在运行的Java,因为那些Java仍然在使用先前的工作空间。

  2. 如果您想要使用多个IDE并在不同或相同的项目上工作,请更改另一个工作空间,但在打开IDE后,您应该从工作空间导入项目。


2
每当Eclipse没有关闭(通过任务管理器杀死Eclipse进程或计算机关机)时,我都会遇到这个问题。我尝试了以下步骤,对我有用。
1)从此文件夹中删除以“.fileTable”开头的文件名。

C:\eclipse\configuration\org.eclipse.osgi.manager

2) 从此文件夹中删除以数字名称开头的文本文件,如日志文件。
C:\eclipse\configuration
3) 打开命令提示符(cmd),导航到此文件夹。
C:\eclipse 输入以下命令:
eclipse clean start

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接