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

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

但我知道它不是。

我如何“解锁”它?


当前回答

Mac用户:

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

ps -ef |grep eclipse
kill -9 pid

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

其他回答

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

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

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

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

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

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

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

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

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

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

-clean选项为我修复了它。

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