すべてのユーザーがアクセスできるように、Javaアプリに永続ストレージを作成する必要があります。それで、私はWindowsでうまく機能することを研究しjava.util.prefs.Preferencesて使用し、Registerにデータを保存していました。systemRoot()しかし、私はLinux(Ubuntu)で実際にいくつかの問題に直面しています。他のアプリがすでに使用しているディレクトリ/usr/share/を使用したいと思います。systemRootそのため、実行時にデフォルトディレクトリを/ usr/shareにリダイレクトしようとしています。これが私のコードです:
System.setProperty("java -Djava.util.prefs.systemRoot", "/usr/share/myfolder");
Preferences pref = Preferences.systemRoot().node("/usr/share/myfolder");
このサイトによると、.systemPrefsこのコマンドラインとそれを使用する暗黙のコマンドラインを実行する前にフォルダを作成する必要がsystemRoot()あります。
プログラムを実行すると、次の警告が表示されます。
java.util.prefs.FileSystemPreferences syncWorld
WARNING Couldn't flush system prefs: java.util.prefs.BackingStoreException: /etc/.java/.systemPrefs/usr create failed.
だから私はそれが機能してSystem.setPropertyいないと思います。なにか提案を?前もって感謝します!