2

Jythonスクリプトを使用してJava設定を保存するのに問題があるようです。Jython 2.5ベータ版の場合、私は以下を使用します。

clazz = Class.forName('mypackage.myclass')
prefs = Preferences.userNodeForPackage(clazz);
# or Preferences.userRoot()
prefs.put('propertyname', 'yes')

設定は保存されません。次に追加すると:

prefs.flush()

私は得る

java.util.prefs.BackingStoreException:ファイルロックを取得できませんでした。

私は現在、Java1.6を使用してLinuxとUnixでこれを実行しています。私のJavaアプリケーションは同じシステムでjava.util.prefs.Preferencesを正常に使用できるため、明らかな何かが欠けていることを望んでいます。

どんな助けでも大歓迎です。

4

2 に答える 2

2

質問と回答のコメントで、/ etc / .java/.systemPrefsを書き込もうとしていると述べています。私はそれが実際には正しいとは思いません。

clazz = Class.forName('mypackage.myclass')
prefs = Preferences.userNodeForPackage(clazz);
# or Preferences.userRoot()
prefs.put('propertyname', 'yes')

Preferences.userNodeForPackageを使用しているため、.userPrefsを取得します。これらは/home/[user]/.javaにあり、書き込み可能である必要があります。

systemPrefsを使用すると、Linuxでパーミッションの問題が発生する可能性があります。プリファレンスは、デフォルトで/etc/.java/.systemPrefsに保存されます。このディレクトリが利用できない場合(たとえば、jreをシステムにコピーした場合)、設定の書き込みに使用されるFileSystemPreferencesクラスは[java.home]/。systemPrefsにフォールバックします。

設定は事前定義された間隔でプログラムが終了したときに保存されるため、prefs.flush()を呼び出す必要はありません。

于 2009-11-04T14:15:11.210 に答える
1

これは適切なようでした。

ファイルが作成されていないか、ファイルの所有者の権限が不十分である可能性がありますか?またはそのようなもの?

于 2009-05-09T04:39:32.237 に答える