8

アプリケーション設定とキャッシュデータを格納するための適切なディレクトリを取得するために、JVM で簡単なクロスプラットフォームの方法を探しています。たとえば、XDG 仕様の Linux では次のようになります。

  • 設定~/.config/appname
  • キャッシュイン~/.cache/appname

Windows のものが入りますC\Users\user\Application Data(Win 7 の場合)。Mac は~/Library/Application Settings.

これらのパスの場所を取得するためのクロスプラットフォーム呼び出しはありますか? 私はそれについて尋ねているいくつかの質問を見つけましたが、私はそれを見つけることができませんでした. ほとんどの一般的なデスクトップ プラットフォーム用の正しいロジックを実装したライブラリはありますか?

最悪の場合、検索してuser.home、すべてが XDG ベースの Linux 環境であると偽ることができます。しかし、ユーザーの OS に適したディレクトリを簡単に取得できるのであれば、そうしたいと思います。

4

2 に答える 2

2

基本的に、この情報を提供するユーティリティ クラスをセットアップします。これは主に、user.homeおよびos.nameシステム プロパティに基づいています。

次のようなパスの場所を構築できる一連のメソッドがあります...

SystemUtilities.getApplicationSettingsPath("Name of my awesome app");
于 2012-10-26T01:29:47.213 に答える
2

このFileSystemViewクラスは、このようないくつかの一般的なディレクトリへのアクセスを含み、クロスプラットフォームであることを私が知っている唯一のものです。こちらのドキュメントを参照してください

このクラスには、 や などの便利なメソッドが含まれていgetHomeDirectory()ますgetDefaultDirectory()。このクラスはJFileChooserfor Swing インターフェースによって使用されます。config および cache ディレクトリを直接指していないことはわかっていますが、正しい方向への一歩になる可能性があります。

私自身のアプリでは、アプリケーション自体に含まれるすべての構成と設定を作成しようとすることで、次善のアプローチを取ります。アプリケーションがインストールされているディレクトリの下に「config」ディレクトリを作成します。OS全体の構成の中心的な場所ではありませんが、少なくともJavaアプリケーションのコンテキスト内に保持されます.

于 2012-10-26T01:24:34.493 に答える