原因是首选项系统尝试在“普通”用户对Linux工作站没有写权限的位置写入锁文件。 (/opt/j2se/linux/ix86/j2se_1.5.0_12/jre/.systemPrefs/.system.lock)
1)我不能给目录写入权限。
2)我正在做这样的事情:
private void loadSamplePreferences() throws IOException,
BackingStoreException, InvalidPreferencesFormatException {
ClassLoader contextClassLoader = Thread.currentThread()
.getContextClassLoader();
InputStream stream = contextClassLoader
.getResourceAsStream("example.xml");
Preferences pref = Preferences.systemRoot().node("example");
pref.removeNode();
Preferences.importPreferences(stream);
}
我尝试使用虚拟工厂设置首选项,但在加载
时仍然存在问题 System.setProperty("java.util.prefs.PreferencesFactory", "DisabledPreferencesFactory");
System.setProperty("java.util.prefs.systemRoot", targetpath);
System.setProperty("java.util.prefs.userRoot", targetpath);
如何解决这个问题?
答案 0 :(得分:1)
我刚才发现此链接:Java Preferences to a File,来自davidc.net。这使您可以选择保存文件的位置。
答案 1 :(得分:1)
您可能希望使用Preferences pref = Preferences.userRoot().node("example");
... systemRoot适用于所有用户的系统范围首选项。