java.lang.SecurityException:无法锁定用户偏好。锁定文件访问被拒绝

时间:2019-12-29 22:24:35

标签: ubuntu intellij-idea

运行Intellij Ultimate(2019.3.1版)时,会引发以下错误:

Internal error. Please refer to http://jb.gg/ide/critical-startup-errors

java.lang.SecurityException: Could not lock User prefs. Lock file access denied.
    at java.prefs/java.util.prefs.FileSystemPreferences.checkLockFile0ErrorCode(FileSystemPreferences.java:956)
    at java.prefs/java.util.prefs.FileSystemPreferences.lockFile(FileSystemPreferences.java:944)
    at java.prefs/java.util.prefs.FileSystemPreferences.sync(FileSystemPreferences.java:748)
    at java.prefs/java.util.prefs.FileSystemPreferences.flush(FileSystemPreferences.java:843)
    at java.prefs/java.util.prefs.FileSystemPreferences.syncWorld(FileSystemPreferences.java:483)
    at java.prefs/java.util.prefs.FileSystemPreferences$3.run(FileSystemPreferences.java:450)
    at java.base/java.util.TimerThread.mainLoop(Timer.java:556)
    at java.base/java.util.TimerThread.run(Timer.java:506)

-----
JRE 11.0.5+10-b520.17 amd64 by JetBrains s.r.o

此问题的解决方法是什么?

我认为此用户偏好错误是每次打开IntelliJ都必须设置并激活IntelliJ的原因。

1 个答案:

答案 0 :(得分:1)

~/.java/.userPrefs目录,其子目录之一或单个文件具有错误的权限,因此JVM无法在其中写入。

如果您是从其他用户(例如root)启动某个Java应用程序,并且该目录是使用该用户的权限创建的,则会发生这种情况。

另一个可能的原因是,其他某个进程已经持有了一个锁,并且同时在操纵Java Preferences。

如果是其他持有该锁的进程,则可以尝试查找并杀死它。

如果是权限问题,最简单的解决方案是仅sudo rm -rf ~/.java/.userPrefs,然后再次启动IDE。

您当然可以检查该位置的实际所有者/权限,并使用chown / chmod(通过-R开关递归)对其进行修复。

还值得检查.java目录本身的权限,作为最后的选择,您可以删除它。

相关问题