【发布时间】:2011-09-06 20:25:53
【问题描述】:
我正在使用系统偏好来测试我的代码,我在 java 1.5 上观察到了一些奇怪的东西
private void loadEmptyPreferences() throws IOException,
InvalidPreferencesFormatException, BackingStoreException {
ClassLoader contextClassLoader = Thread.currentThread()
.getContextClassLoader();
InputStream stream = contextClassLoader
.getResourceAsStream("example.xml");
if (stream == null) {
fail("Could not load preferences file");
}
Preferences pref = Preferences.systemRoot().node("test");
pref.removeNode();
Preferences.importPreferences(stream);
}
我明白了
java.lang.SecurityException:无法锁定系统首选项。锁定文件访问被拒绝。 在 java.util.prefs.FileSystemPreferences.checkLockFile0ErrorCode(FileSystemPreferences.java:919) 在 java.util.prefs.FileSystemPreferences.lockFile(FileSystemPreferences.java:908) 在 java.util.prefs.FileSystemPreferences.removeNode(FileSystemPreferences.java:656)
原因是首选项系统尝试在“普通”用户在 Linux 上没有写入权限的位置写入锁定文件(/opt/j2se/linux/ix86/j2se_1.5.0_22/jre/.systemPrefs /.system.lock)
如何解决这个问题?我们应该使用属性吗?
【问题讨论】:
标签: java linux preferences