目录C:\ eclipse\configuration\org.eclipse.osgi中无法锁定

ate*_*iob 30 eclipse

我曾经使用我的受限用户帐户(即不是管理员)运行Eclipse 3.5.2.

但是当我升级到3.6.2时,Eclipse拒绝在受限用户帐户中运行(它只在管理员下运行).

它发出以下错误:

目录C:\ eclipse\configuration\org.eclipse.osgi中无法锁定.常见原因是文件系统或运行时环境不支持该位置的文件锁定.请选择其他位置,或禁用文件锁定,将"-Dosgi.locking = none"作为VM参数传递.C:\ eclipse\configuration\org.eclipse.osgi.manager.fileTableLock(访问被拒绝)

好吧,我检查了该文件夹的所有者(Windows XP),它是管理员,所以当然访问将被拒绝.

但是......为什么不在Eclipse 3.5.2中发生这种情况?

我可以解决这个问题,通过分配整个的所有权,C:\eclipse\configuration\org.eclipse.osgi但不理解为什么,我不知道我是否需要为其他文件夹这样做.

另一种解决方法是执行错误消息建议:禁用-Dosgi.locking=none作为VM参数传递的文件锁定.但我不知道会有什么权衡(锁定是有原因的,对吧?它是什么?)

如果我理解锁定的目的是什么,我可以明智地选择上面列出的2个解决方法之一.

Fre*_*rik 16

这与在多用户环境中运行Eclipse有关,首先阅读关于多用户安装的Eclipse帮助部分.安装Eclipse时,它是作为管理员帐户完成的.这意味着该configuration文件夹是可访问的,Eclipse认为这是共享配置或私有安装.因为这个Eclipse会首先尝试将数据写入配置目录,但对于普通用户来说会失败.

您要做的是让Eclipse意识到您有共享安装安装,并且所有配置数据都应该在用户主目录中.

有关更多信息,请参阅此类似问题此IBM支持答案.

  • @ateiob是的,应该是可能的.尝试使用新的工作区并禁用对配置区域的写访问权限.工作区可能已经与共享配置目录相关联,因此可能是问题.您也可以使用参数"-D osgi.configuration.area = c:\ my_home_dir"启动 (4认同)
  • 优秀参考,谢谢!我的安装既不是共享的(它不是在服务器上!我是这台笔记本电脑上的唯一用户),也不是真正的私有(我总是以管理员身份安装任何软件,但只能在受限用户帐户下使用).您提供的IBM支持答案实际上是我在原始帖子中描述的第一个**解决方法**(除了它适用于AIX/Linux,而不是Windows).在这个问题已经发生之后,有没有办法告诉Eclipse开始使用每用户配置目录? (2认同)

小智 14

我遇到了与Juno版本相同的问题.

几年前,我创造了一个完美的多用户环境,但事情随着时间而变化.现在,我明显的解决方案是改变权限,根本不起作用.

问题是锁文件具有777不会更改的特殊权限.此外,仅提供777任何UNIX系统(Linux,AIX等)内的目录并不是最佳解决方案; 然后,我解决了另一个问题.

在Eclipse目录中,您可以找到一个eclipse.ini文件.在那里你可以放置vm参数,尽管Eclipse建议的参数不起作用.

我的环境开始使用这个:

-Dosgi.configuration.area=@user.home/.eclipse
Run Code Online (Sandbox Code Playgroud)

这样,运行Eclipse程序的环境中的每个用户都将.eclipse在特定主目录内创建一个具有完全权限和零问题的不同目录.

我希望这对"UNIX端"的每个人都有用.


saa*_*ada 8

正确修复

确保将Eclipse和工作空间的权限更新为Eclipse运行的任何用户.您可以ps -ef | grep -i eclipse在运行eclipse时使用以查找该用户.一旦有了用户,就可以轻松使用chown -R user:group ~/Documents/workspace**

Hacky修复

  1. 在你安装它的地方更改eclipse本身的权限(在我的情况下为/ opt /):

    sudo chmod -R 770/opt/eclipse

  2. 更改工作空间的权限,无论您在哪里(在我的情况下〜/ Documents /):

    sudo chmod -R 770~/Documents/workspace

希望这有助于我的Linux用户!

您可以使用正确的语法在Windows上尝试此操作.

感谢Frederik的帮助!

  • 非常糟糕,我认为,应始终避免使用777 (3认同)
  • 授予每个人权限不应该是解决方案.您应该始终应用最小特权原则. (2认同)