偏好被锁定

时间:2011-06-21 13:02:24

标签: java preferences

原因是首选项系统尝试在“普通”用户对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);

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我刚才发现此链接:Java Preferences to a File,来自davidc.net。这使您可以选择保存文件的位置。

答案 1 :(得分:1)

您可能希望使用Preferences pref = Preferences.userRoot().node("example"); ... systemRoot适用于所有用户的系统范围首选项。