4

最近、一部の 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.

「作成に失敗しました」。冗談じゃない!それはどんなファイル名ですか?

$HOME/.userPrefsグーグルで検索した結果、Java Preferences Subsystem とは何か、Linux 上のストレージのデフォルト値は、などとなるはずですが、ログ メッセージにあるパスがどこから来ているのかがわかりません。そして、この値をどこに設定するかはまだわかりません。ストレージ ファイル パスを含む構成ファイルが破損している可能性があります。

Kubuntu 12.10 で openjdk-7 を使用する

4

1 に答える 1

5

その奇抜な文字列は、への呼び出しの結果ですjava.util.prefs.Base64.byteArrayToAltBase64()。プロセスを逆にすると、次のようになります"yEdeditor.DocumentType{typeString='application-yfiles'}"。その文字列はあなたにとって何か意味がありますか?

ファイル名の文字は、最終的には問題にならない場合があります(正しい場合があります)。ubuntuのホームディレクトリが暗号化されている場合は、この「よく知られている」問題が発生している可能性があります(暗号化されたファイルシステム内のファイルの最大ファイル名長は143文字)。バグを診断するのは非常に微妙で非常に困難です。

于 2012-12-12T19:41:24.703 に答える