[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: Properties.load/saveの対象フォルダはどこが妥当か




小薮です。

On Mon, 18 May 1998 19:35:37 +0900
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx> wrote:

> Javaに限りませんが、UNIX だと、ホームディレクトリーに . から始まる
> 設定ファイルを作ることが多いのではないでしょうか。

御意。

> Windows だと、アプリケーションをインストールしたディレクトリーか、
> Windows の system ディレクトリー (Windows NT なら C:\WINNT\System32 など)に
> .ini ファイルを作るのが一般的ですが、Java の場合はどうなのでしょうね。

最近はレジストリを使う事が多い気がします。

> Windows NT の場合はユーザー別のホームディレクトリーがありますが、
> Windows95 の場合はホームディレクトリーが無いことの方が多いでしょうね。

私はWindowsAPIは素人ですが,「NTの場合はユーザ毎のディレクトリを返し」,
「95ではWindowsディレクトリを返す」ようなAPIがあったりしませんか?
多分user.homeはそれを利用して設定されていると思うのですが・・
# 確認してません

> Hiroshi> System.getProperty("user.home") + File.separator +
> Hiroshi> "myApp.properties"
> Hiroshi> ぐらいしか思い付かなかったのですが、
> Hiroshi> もっと良い案があればお聞かせください。

大体いいんじゃないでしょうか。
私が思い付く一番丁寧な方法は以下の通り。

・javaコマンドのオプションのプロパティ設定機能で,設定ファイルの
 パス名とファイル名を(別々に)指定できるようにしておく
・指定がなかったり,指定されたディレクトリにアクセスできなかったりした
 ときのデフォルトとして,user.homeやmyApp.propertiesを使用する
・プロパティの明示的な指定には,バッチ,ショートカット,
 シェルスクリプトなどを用意する

バッチその他はプラットフォーム毎に用意することになりますが,
仕方がないでしょう。
「適切なファイル名」は,そもそもプラットフォーム依存なので,
Pure Javaの範囲では解決しない問題だと思います。
多分ファイル名をハードコードすると,それ自体Pure Javaチェックに
引っかかるんじゃないかな。
# cf. http://www.sun.co.jp/tech/whitepapers/JCB100.pdf p.42


> 私は "user.home" に . で始まる名前のファイルを作ってしまおうかと思います。
> Windowsな方には泣いてもらう^^;ということで...

で始まるファイル名/ディレクトリ名をWindows95/NTで使う事については
致命的な問題はないと思います。私もやったことがありますし,
Castanetなんかも設定ファイルを.で始まるディレクトリに放り込んでますね。

ただし,(1)エクスプローラを使っての.で始まる名前にリネームは不可,
(2)隠しファイルとしての効果はない,(3)DOS/Windows3.1だと利用不可,
など,致命的ではないにしろ問題があるのは確か。


-----------------------------------
koyabu@xxxxxxxxxx