当我启动时,Eclipse显示“工作区不能被锁定”

“无法启动产品,因为相关的工作空间目前正在被另一个Eclipse应用程序使用”或“工作空间正在使用或无法创建,请选择另一个工作空间。”

但我知道它不是。

我如何“解锁”它?


只需删除eclipse工作区目录中的.metadata目录中的.lock文件。

注意事项-如果你删除。metadata文件夹,所有的首选项都会被删除。


还有另一种情况,工作空间的路径可能不存在,例如,如果您从另一个工作空间导入了首选项,那么一些导入的工作空间地址可能会出现在您的“开放工作空间”对话框中;然后,如果您不注意这些地址,一旦您试图打开它们,就会得到完全相同的错误。


“工作区正在使用中或无法创建,请选择另一个”问题的另一个可能原因是,到您的工作区的实际路径可能已经更改。

在我的例子中,工作空间的真实位置已经改变了,但是我使用了一个符号链接使它看起来像是在相同的位置。我在日志中看到错误,表明eclipse正在查看之前的“真实”位置,而不是遵循符号链接,这就是导致错误的原因。

在我的例子中,我只是将工作空间移回原来的位置。


进入任务管理器(在任务栏中单击右键),选择进程菜单栏,选择eclipse.exe,单击EndProcess


@Boris给出的答案在99%的情况下是正确的,但是如果您在旧版本的Eclipse中打开工作区,也可能发生这种情况。用Juno导入/创建的工作区在Galileo中打开时将抛出此错误。


到目前为止,我已经看到了3个其他修复:

在.metadata/, rm .lock文件中 如果#1不起作用,尝试杀死进程javaw.exe等,然后rm .lock文件 如果#1和#2不工作,尝试rm .log文件在.metadata/,并再次检查.plugin/。 这对我来说一直都很有效:重新定位.metadata/,打开和关闭eclipse,然后覆盖。metadata

解决方案可以归结为清理.metadata文件夹。


导致这个问题的另一个非常常见的原因是,如果您试图加载一个不再连接的驱动器上的目录。例如,假设你用C:\Code\Java编程,但偶尔在H:\Code\Java闪存驱动器上工作。如果你没有连接驱动器,很容易相信你正在尝试加载一个有效的目录,而没有注意到你的打字错误。


有时,如果你在Windows上,你可能看不到所有的进程——或者在任务管理器中看不到罪魁祸首进程。我必须点击“显示所有用户的进程”,我必须杀死这个java.exe,以便回到我的工作空间。


另一个问题是eclipse没有对src文件夹的写访问权。更改安全权限,确保添加“已验证用户”,并检查所有权限,但完全控制和特殊权限。


在管理员模式下运行eclipse为我解决了这个问题。您可以通过[右键单击]->在安装目录下以管理员身份运行eclipse.exe。

我在win7机器的工作环境中具有限制性权限。我还删除了.lock和.log文件,但这并没有帮助。它也可以是所有这些因素的结合。


如果没有工作,另一种可能的情况是看到有一个正在运行的Java应用程序。可能是您以前的打开和关闭留下了未杀死的Java实例。

如果有两个java实例,请检查是否有正在运行的java实例,至少需要杀死一个。但是,大多数时候我杀死任何java运行:),因为java使用的工作空间更早,如果不杀死它仍然会。 如果您想要多个IDE用于不同或相同的项目,请更改另一个工作空间,但您应该在打开IDE后导入项目窗体工作空间。


我在重启系统(经过很长时间后)后出现了这个错误。通常我只是让它睡觉)。 我发现一旦我挂载了项目文件夹所在的驱动器(通过单击并打开它),并重新启动eclipse,就为我解决了这个问题。

PS:我是ubuntu用户。


下面是解决这个问题的几个步骤。4步对我来说很有用。

Delete .log files along .metadata folder. Check the current user permission make sure to check the full control checkbox click apply then OK. If you run system drive defragmentation or maintenance before you run eclipse editor sometimes original file path are not in their respective path to make sure run "previous version" time before your system maintenance of your drive where the eclipse workbench or something similar to this was saved. This last option is works for me. Check the drive letter of your current drive where the code editor was saved. If something unusual e.g before your maintenance your drive letter is K then after defragment or maintenance. The drive letter is now L hence you should change the drive letter to its original one that is K. to do this click the ff: Open control panel System & security Administrative tools Computer management Disk management in disk mngt choose the Drive example L then right click > change drive letter & path > click remove > then ok, open it again then > click add and > choose your original drive letter for that drive then click ok. If you use your computer for a long period of time do restart first to refresh everything.


删除日志和.lock不起作用,但是

-clean选项为我修复了它。


选择一个“不同的”实际上是一个相当简单的解决方案。

我一直以管理员身份运行Eclipse(从命令行执行sudo Eclipse),因为“workspace”文件夹正在抛出工作区,或者无法创建…错误(以管理员身份运行似乎是修复该问题的唯一解决方案)。

一位同事(与我一起处理相同的问题)希望通过单击图标来运行Eclipse。所以当他运行Eclipse时,对话框出现了“选择您的工作区”,他只是在“工作区”后面加了一个“2”。

这将创建一个新文件夹:"workspace2"。《Eclipse》运行得很好;从那以后,我再也没有出现过锁的问题。


当您没有正确关闭eclipse.exe时,就会发生这种情况。

*打开任务管理器->结束任务你的eclipse->现在打开eclipse.exe它将工作。

希望它能帮助到别人。


我观察到一个例子,当eclipse在强制退出,或Alt-f2 xkilled在linux中,尝试立即打开eclipse显示错误。甚至元数据/。锁文件在这种情况下不存在。 然而,它在大约两分钟后开始工作


当eclipse没有关闭时(从任务管理器或计算机关机时杀死eclipse进程),我就会面临这个问题,我尝试了以下步骤,它对我有用。

1)删除以“”开头的文件名。fileTable”

C: \ eclipse \ \ org.eclipse.osgi.manager配置

2)从该文件夹中删除日志文件,如以数字名称开头的文本文件

C: \ eclipse \配置

3)打开命令提示符(cmd)导航到此文件夹

C: \ eclipse

键入下面的命令

Eclipse干净启动


Mac用户:

可能是另一个eclipse实例正在后台运行。如果是,使用Force Quit eclipse或

ps -ef |grep eclipse
kill -9 pid

到所有eclipse实例,并启动新的工作空间


我不知道出了什么问题,但我通过直接在c驱动器(c:\dev)中创建一个目录来解决,而不是从我的主文件夹(c:\users\me\dev)。但我不用多想。在我的情况下,它是新的eclipse解压缩实例。我无法在eclipse文件夹中看到.matadata文件夹。感谢上帝的恩典,我解决了。


使用选项-Dosgi.locking=none启动Eclipse。

我知道窍门了,而且很管用。

不要这样做,除非您知道没有人可以同时处理同一个文件。


这发生在我身上的原因(用Photon)很容易通过改变Eclipse的一般偏好来解决:

Window -> Preferences -> General: Uncheck: "Always run in background"

一旦进行了更改,无论何时关闭Eclipse,它都将不再让javaw.exe进程在后台运行。我猜这是Photon中的一个bug(或者是使用Amazon Corretto OpenJDK版本的Java和Eclipse的bug),总有一天会被修复。


我也遇到了同样的问题,但是由于某些原因,工作区中的.lock文件没有被删除。甚至创建一个新的工作空间也会被锁定。

所以我所做的就是清理windows temp文件夹,%PREFETCH%文件夹和% temp %位置。重新启动系统,然后允许删除.lock文件。

也许它会帮助别人。


看起来你的工作空间是在Java TM中使用的,打开任务管理器并关闭eclipse.exe和Java TM进程。


请尝试从任务栏结束任务Eclipse。这对我很管用。


对我来说,有效的方法是重新启动系统。(ubuntu 20.04)


如果有人有STM32Cube相关的问题,这显然是基于Eclipse的,有同样的问题,以上的建议对我都不适用,这里是我如何修复它,对于Linux,尽管我想你也可以在Windows中找到相应的路径。

在$HOME目录下,进入.eclipse/com.st.stm32cube.ide…/configuration/settings

prefs文件包含很少的选项,包括最近的工作空间路径,以及它是否会提示您在启动时选择一个工作空间。修改RECENT_WORKSPACES的路径,或者启用SHOW_WORKSPACE_SELECTION_DIALOG。


在我的例子中,在工作区的位置C:\之前有一个空格。我删除了那个空间,这就足够了:)