2011-06-21 17 views
2

ロックばかり。 (/opt/j2se/linux/ix86/j2se_1.5.0_12/jre/.systemPrefs/.system.lock)設定は理由が好み-システムが「通常」のユーザーは、Linuxワークステーションには書き込み権限を持っていない場所にロックファイルを書き込もうとするということである

1)ディレクトリへの書き込み権限を与えられません。

2)私はこのような何かやっている:私はダミーの工場でsetpreferencesしようとした

private void loadSamplePreferences() throws IOException, 
      BackingStoreException, InvalidPreferencesFormatException { 
     ClassLoader contextClassLoader = Thread.currentThread() 
       .getContextClassLoader(); 
     InputStream stream = contextClassLoader 
       .getResourceAsStream("example.xml"); 

     Preferences pref = Preferences.systemRoot().node("example"); 

     pref.removeNode(); 


     Preferences.importPreferences(stream); 
    } 

をまだ問題が

System.setProperty("java.util.prefs.PreferencesFactory", "DisabledPreferencesFactory"); 
     System.setProperty("java.util.prefs.systemRoot", targetpath); 
     System.setProperty("java.util.prefs.userRoot", targetpath); 

ロードに存在するどのようにこの問題を解決するには?

答えて

1

あなたはおそらくPreferences pref = Preferences.userRoot().node("example");を使用したい... SYSTEMROOTは、すべてのユーザーのシステム全体のプリファレンスを対象としています。別のユーザーが共有コンピュータ上で自分の好みを持っている状況では

+0

、私はこれは行くには良い方法だと思います。 – Atreys

+0

これは正しいです。エラーのための本当の理由は、管理者(Linuxのルート)を必要とする、constantlearnerは、システム環境を求めていたということです。しかし、あなたはJVM上のシステムプロパティで別の場所に、システム環境設定、およびユーザーの好みの場所をリダイレクトすることができます。場所を書き込み可能なディレクトリに変更します。しかし、すべてで書き込み可能な場所にシステムプロパティを持つことは、おそらく素晴らしい考えではありません。 – dlaidlaw

関連する問題