11

私はプログラムの大部分をWindowsでプログラミングしており、設定に問題はありません。Ubuntu 12.04 を起動し、クラスを Eclipse にロードしました。実行時に、コンソールに次のメッセージが表示されます。

Oct 12, 2012 8:14:38 PM java.util.prefs.FileSystemPreferences$6 run
WARNING: Prefs file removed in background /home/steven/.java/.userPrefs/prefs.xml

preferencesこれはUbuntuのシステムと関係があることは理解していますが、いくつかのGoogle検索では解決策がありませんでした. このようなエラーを修正するにはどうすればよいですか?

4

3 に答える 3

2

おそらく、このバグの影響を受けています: https://bugs.openjdk.java.net/browse/JDK-8068373

(prefs) FileSystemPreferences が \0 を XML ストレージに書き込み、すべての設定が失われる

電話したらprefs.put(key, "some string with \0 in it")

XML ライターは、喜ん\0で をファイルに書き込みます。それを免れていると思いますが、前述のとおり、これは無意味です。その後、再度読み込もうとすると、XML ファイルが無効になります。環境設定ファイルが無効であり、すべての環境設定が消去されるという警告がログに記録されます。

追加の OS バージョン情報:

テストしたすべての種類の Linux で発生します。この PreferencesFactory を意図的に使用すると、どのプラットフォームでも問題を再現できます。

また、stderr で次の出力が得られます。

Dec 29, 2014 9:19:19 AM java.util.prefs.FileSystemPreferences$6 run 
WARNING: Invalid preferences format in /Users/daniel/.java/.userPrefs/com/acme/testing/prefs.xml 
Dec 29, 2014 9:19:19 AM java.util.prefs.FileSystemPreferences$6 run 
WARNING: Prefs file removed in background /Users/daniel/.java/.userPrefs/com/acme/testing/prefs.xml

解決策: Java 9+ に更新する

于 2015-09-17T08:51:39.213 に答える
0

user11153が最初に書いたように、これはヌル文字\0(または私が最近行った他の Unicode 実験...) に関連しているようです。これは、IntelliJ IDEA によってビルドおよびデプロイされた jdk とともにインストールされた JShell 17.0.1 で発生します。

.java/.userPrefs/tool/JShell/IncorrectFormatPrefs.xml問題のある行が見つかるまで、ホームディレクトリに保存されているファイルを少し試してみました(私にとっては.

<entry key="HISTORY_LINE_161" value="&quot;<ffff>&quot;.length()"/>

この行を削除してファイルの名前IncorrectFormatPrefs.xmlprefs.xml警告に変更した後、消えました。

于 2022-01-06T13:54:56.850 に答える