2012-04-21 8 views
2

私は実際に私がこれを言っているとは思えませんが、私のプログラムをOSXに移植してアクセス権に慣れてから、私はそれをしたい方法で動作しません。現在のところ、Windowsでは、プログラムは設定をレジストリ(HKLM)に保存し、ユーザの編集可能なリソースはプログラムファイルの隣のフォルダに保存します。いろいろな理由から、私は今、設定/設定がファイルに保存されることを決めたので、ユーザーは他のリソースがどのフォルダに保存されるかを知ることができます。Java:管理者権限を必要とせずにconfigを書き込む場所

私が今質問しているのは、設定ファイルをどこに保存するかというところです。明らかに更新されますが、実行するには管理者権限を必要とするようにプログラムしたくありません。私はオプションを提供して、すべてのユーザーが(ほとんどのプログラムのように)プログラムを使用できるようにしたいと思います。これはもちろんAdminを必要とするので、これは2番目のクエリにつながります。どのように他のリソースが保持されているか)、どのようにプログラムがすべてのユーザー用にインストールされているのか、それとも1つだけインストールされたのかを検出できます。あなたが推測していなかった場合、私はプログラム的にあなたが同様にしてくださいお勧めの場所を取得する方法を知っていただきたいと思いますので、事前に

おかげ

PSは、プログラムはJavaで書かれています。

答えて

4

名前から始まるフォルダに情報を格納するための* nix互換プログラムでは、通常の方法です。以下のようなユーザーのホームディレクトリに、

.bash_history 
.bashrc 

あなたは私の意見ではOSX上で同じを使用すると言うディレクトリを作成することができ、

.myapp 

あなたは下のいずれかの形式で任意の数のファイルを保存することができますそのディレクトリ。

フォルダの場所を取得するには、おおよそのアプリのためにあなたにあなたのカスタム設定ディレクトリを得ることができるコードです

String homeDir = System.getProperty("user.home"); 
File myAppDir = new File(homeDir, ".myapp"); 

を行うことができます。

ドットファイル/フォルダは、Windowsの隠しフォルダと多少似ていますか?あなたのファイルマネージャは、デフォルトでは一般にこれらのファイル/フォルダを表示しません。

プログラムがすべてのユーザーに対してインストールされているかどうかを確認するには、/ etc(Macについてはわかりません)のような管理者(root)の制御下の場所で構成を作成できます。しかし、これを処理する良い方法があるかもしれません。

+0

ご返信が遅くて、ご回答いただきありがとうございます。 'user.home'プロパティは、私が必要とするように思えます。私は天気を検出するために、プログラムがすべてのユーザ(Windows上)にインストールされていると思います。書き込みには管理者権限が必要です。私はMac上でこれほど心配していません、彼らは(アプリケーションの面で)仕事の仕方のために。 – Andy

1

WindowsとUNIXの両方で、User(通常)には完全な権限を持つ(ホーム)フォルダがあります。ホームフォルダにディレクトリを作成し、そこにユーザの設定ファイルを置くことができます。

+0

あなたの答えをありがとう - それは基本的には、カルが言ったが、彼はより完全な答えであるので、私は彼を受け入れるだろう。 – Andy

関連する問題