我以前在我的受限用户帐户(即非管理员)中使用Eclipse 3.5.2。
但是当我升级到3.6.2时,Eclipse拒绝在受限用户帐户中运行(它只在管理员下运行)。
它发出以下错误:
目录中无法锁定 C:\蚀\配置\ org.eclipse.osgi。一个常见的原因是 文件系统或运行时环境不支持文件锁定 那个位置。请选择其他位置,或禁用文件 锁定传递“-Dosgi.locking = none”作为VM参数。 C:\蚀\配置\ org.eclipse.osgi.manager.fileTableLock (访问被拒绝)
好吧,我检查了该文件夹的所有者(Windows XP)并且它是管理员,因此访问权限当然会被拒绝。
但是......为什么不在Eclipse 3.5.2中发生这种情况?
我可以通过分配整个C:\eclipse\configuration\org.eclipse.osgi
的所有权来解决这个问题,但不明白为什么,我不知道是否需要为其他文件夹执行此操作。
另一种解决方法是执行错误消息建议:禁用文件锁定将-Dosgi.locking=none
作为VM参数传递。但我不知道会有什么权衡(锁定是有原因的,对吧?它是什么?)
如果我理解锁定的目的是什么,我可以明智地选择上面列出的2种解决方法之一。
答案 0 :(得分:16)
这与在多用户环境中运行Eclipse有关,首先在多用户安装上阅读this Eclipse help section。安装Eclipse时,它是作为管理员帐户完成的。这意味着可以访问configuration
文件夹,Eclipse认为这是共享配置或私有安装。因为这个Eclipse会首先尝试将数据写入配置目录,但对于普通用户来说会失败。
您要做的是让Eclipse意识到您有共享安装安装,并且所有配置数据都应该在用户主目录中。
有关详细信息,请参阅this similar question和this IBM support answer。
答案 1 :(得分:14)
Juno版本遇到了同样的问题。
几年前,我创建了一个完美运行的多用户环境,但事情随着时间而变化。现在,我明显的解决方案是改变权限,根本不起作用。
问题是锁定文件具有777
不会更改的特殊权限。此外,仅将777
提供给任何UNIX系统(Linux,AIX等)内的目录并不是最佳解决方案。然后,我解决了另一个问题。
在Eclipse目录中,您可以找到eclipse.ini
文件。在那里你可以放入vm参数,尽管Eclipse建议的参数不起作用。
我的环境开始使用这个:
-Dosgi.configuration.area=@user.home/.eclipse
这样,运行Eclipse程序的环境中的每个用户都将在特定的home中创建一个不同的.eclipse
目录,具有完全权限和零问题。
我希望这对“在UNIX方面”的每个人都有用。
答案 2 :(得分:8)
确保将Eclipse和工作空间的权限更新为Eclipse运行的任何用户。您可以在eclipse运行时使用ps -ef | grep -i eclipse
来查找该用户。
拥有该用户后,您可以轻松使用chown -R user:group ~/Documents/workspace**
在任何安装它的地方更改eclipse本身的权限(在我的情况下为/ opt /):
sudo chmod -R 770 / opt / eclipse
更改工作空间的权限,无论您身在何处(在我的情况下〜/ Documents /):
sudo chmod -R 770~ / Documents / workspace
希望这有助于我的Linux用户!
您可以使用正确的语法在Windows上尝试此操作。
感谢Frederik的帮助!
答案 3 :(得分:4)
我不会chmod
来解决这个问题。在我的情况下,在为一些RTC文件而不是我的用户ID安装Rational Team Concert之后,所有者是root:root
。转到用户的主目录和ls -ltr
以查看您的用户ID和组ID是什么(在Ubuntu上都是相同的)然后在您的eclipse子目录中执行以下操作
sudo chown -R myuserid:groupid /opt/ibm/eclipse
答案 4 :(得分:3)
尝试在映射的网络驱动器中创建工作区时遇到此问题。
一种选择是使用./eclipse -vmargs -Dosgi.locking=none
从终端启动Eclipse。
另一种选择是将osgi.locking=none
添加到Eclilpse配置文件夹中的config.ini文件中。
第二个选项更方便,但副作用是允许任意数量的Eclipse实例运行相同的工作区。
答案 5 :(得分:2)
我只是在config.ini文件中添加了osgi.locking = none,它开始工作了。谢谢大家的帮助..
答案 6 :(得分:1)
谁拥有该目录的写入权限:C:\ eclipse& C:\ eclipse \ configuration?
AFAIK eclipse在启动时决定是使用中央安装作为配置位置,还是根据eclipse(或可能是配置)目录是否可写而使用用户可访问的目录。
答案 7 :(得分:1)
只需将您的eclipse文件夹复制并粘贴到当前登录用户空间中的文件夹中(如果您很难找到其中一个正确的文件夹,只需将其放在C:\ Documents and Settings \ your_user_account_name中)。仅在那里创建一个新的工作区文件夹 为我工作....!
答案 8 :(得分:1)
这是此消息出现的另一个原因。检查似乎是一件明显的事情,但是如果在.fileTableLock
文件上设置了只读标志(这是在Windows中,不知道Linux)那么你也会得到Access Denied错误。这是因为我们将预先配置的工作空间和配置解压缩到用户的IDE环境中。
答案 9 :(得分:1)
在Windows上,一个简单的解决办法是以管理员身份启动Eclipse。
右键单击Eclipse图标,然后单击以管理员身份运行。
它将解决您的问题。
享受:)
答案 10 :(得分:0)
我在具有管理员ID的服务器上运行时遇到了类似的问题。
降低UAC并重新启动服务器修复它。
答案 11 :(得分:0)
在Windows上,我发生了同样的错误消息,因为我在关闭UAC 2年后重新启用了UAC。我刚刚删除了。锁定文件eclipse抱怨..并在UAC弹出窗口时按下继续..然后重新打开eclipse ..一切都很好。