原因是首選項 - 系統嘗試在「普通」用戶在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);
}
我試着用啞工廠setpreferences但仍然問題裝載
System.setProperty("java.util.prefs.PreferencesFactory", "DisabledPreferencesFactory");
System.setProperty("java.util.prefs.systemRoot", targetpath);
System.setProperty("java.util.prefs.userRoot", targetpath);
存在如何解決這個問題?
對於不同用戶在共享計算機上有自己的偏好的情況,我認爲這是更好的方法。 – Atreys
這是正確的。該錯誤的真正原因是constantlearner要求系統首選項,這需要管理員(Linux上的root)。但是您可以將系統首選項和用戶首選項的位置重定向到JVM上具有系統屬性的其他位置。您將位置更改爲可寫目錄。但是,將系統屬性設置爲可由所有人寫入的位置可能不是一個好主意。 – dlaidlaw