2012-12-12 26 views
4

由於最近一些Java應用程序開始打印以下警告飄飛比:java.util.prefs.FileSystemPreferences改掉開斷路徑

java.util.prefs.FileSystemPreferences syncWorld 
WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: /home/yha/.java/.userPrefs/_!(k![@"k!'`!~!"p!(@!bw"y!#4![!"v!':[email protected]"t!'`!bg"0!&@[email protected]"w!'`!ew"0!(k!c!"l!&:!d!"y!'k!bg"n!$0!,w"h!(!!c!"s!'k!}w"h!(@[email protected]"v!'[email protected]"5!'}[email protected]"s!'`!cw!n!(0= create failed. 

「創建失敗」。別開玩笑!什麼樣的文件名是?

Google搜索之後,我現在知道Java Preferences子系統是什麼,Linux上的存儲默認值應該是$HOME/.userPrefs之類的,但是......這並不能解釋我的日誌消息中的路徑來自何處。而且我仍然不知道在哪裏設置這個值。也許有一個配置文件的存儲文件路徑被損壞了。

上的Kubuntu 12.10

回答

5

使用的openjdk-7即怪的字符串是java.util.prefs.Base64.byteArrayToAltBase64()一個呼叫的結果。如果你逆轉這個過程,你會得到:"yEdeditor.DocumentType{typeString='application-yfiles'}"。那個字符串對你來說意味着什麼?

文件名字符最終可能不是問題(它們可能是正確的)。如果您的ubuntu主目錄已加密,則很可能會遇到this "well known" issue(加密文件系統中的文件的最大文件名長度爲143個字符)。非常微妙並且非常難以診斷錯誤。

+1

日誌消息來自yEd,一個Java程序,所以我想這只是yEd的一些配置。是的,我的Ubuntu主目錄已加密。我很驚訝,你建立了連接:-)。有什麼我可以做的嗎? – yankee

+0

@yankee - 我很驚訝自己。 :)至於解決方案,請關閉加密。這就是我們在這裏所做的。作爲開發者,我們會做各種各樣的事情,最終衝擊到這個極限,所以我們放棄了並關閉了它。 – jtahlborn

+0

大家都驚訝於這裏:)我希望我能夠補充這十次,因爲 - 人 - 這是一個偉大的直覺! – Raffaele