Java

java.lang.SecurityException: Could not lockSystem prefs.Lock file access denied.

codetemplate 2006. 10. 30. 19:56

java.lang.SecurityException: Could not lockSystem prefs.Lock file access denied.
       at java.util.prefs.FileSystemPreferences.checkLockFile0ErrorCode(FileSystemPreferences.java:926)
       at java.util.prefs.FileSystemPreferences.lockFile(FileSystemPreferences.java:915)
       at java.util.prefs.FileSystemPreferences.sync(FileSystemPreferences.java:723)
       at java.util.prefs.FileSystemPreferences.flush(FileSystemPreferences.java:814)
       at java.util.prefs.FileSystemPreferences.syncWorld(FileSystemPreferences.java:475)
       at java.util.prefs.FileSystemPreferences.access$1200(FileSystemPreferences.java:33)
       at java.util.prefs.FileSystemPreferences$10.run(FileSystemPreferences.java:449)
       at java.util.TimerThread.mainLoop(Timer.java:432)
       at java.util.TimerThread.run(Timer.java:382)

이런 에러가 종종 생기는데 이유가 먼가요?


이 에러는 JDK 1.4의 XML Configuration 기능 사용시 발생 가능합니다.
다음과 같은 방법으로 해결됩니다.

$JAVA_HOME 디렉토리와 java를 사용하는 user(vep, msgsvr, jaaad 등)들이 그룹이 같아야 합니다.

$JAVA_HOME/.systemPrefs 디렉토리에 group에게 모든 권한을 준다.
$JAVA_HOME/jre/.systemPrefs 디렉토리에 group에게 모든 권한을 준다.

그리고 아래의 디렉토리에 있는 파일들을 다 삭제한다.

$JAVA_HOME/.systemPrefs
$JAVA_HOME/jre/.systemPrefs
$HOME/.java

이렇게 하면 해결 됩니다.