java.util.prefs.FileSystemPreferences尝试打开损坏的路径

时间:2012-12-12 19:15:09

标签: java preferences openjdk

最近,一些java应用程序现在开始打印以下警告:

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!':!d@"t!'`!bg"0!&@!e@"w!'`!ew"0!(k!c!"l!&:!d!"y!'k!bg"n!$0!,w"h!(!!c!"s!'k!}w"h!(@!a@"v!'4!.@"5!'}!a@"s!'`!cw!n!(0= create failed.

“创建失败”。开玩笑吧!这是什么类型的文件名?

谷歌搜索后,我现在知道Java首选项子系统是什么,Linux上存储的默认值应该是$HOME/.userPrefs或者类似但是......但是没有解释我在日志消息中的路径。是来自。我仍然不知道在哪里设置这个值。也许有一个配置文件,其中某个存储文件路径已损坏。

在Kubuntu 12.10上使用openjdk-7

1 个答案:

答案 0 :(得分:5)

那个糟糕的字符串是调用java.util.prefs.Base64.byteArrayToAltBase64()的结果。如果你颠倒过程,你会得到:"yEdeditor.DocumentType{typeString='application-yfiles'}"。这个字符串对你有意义吗?

文件名字符最终可能不是问题(它们可能是正确的)。如果你的ubuntu主目录是加密的,你很可能会遇到this "well known" issue(加密文件系统中文件的最大文件名长度为143个字符)。非常微妙,非常难以诊断bug。