きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

JavaでAppDataの場所を取ってくる方法の考察

前にちらりとYahoo!知恵袋を見ていたときのことである。
なんかJNIがどうとか言っていたので「?」と思ったのである。
まあ、その他に、user.homeプロパティを取ってくるのも載っていた。
user.homeだとC:\Users\youruserな感じのが取れる。
まあ、それが取れたら充分だろう。


他に使えそうなのは、System.getenv()だ。
APPDATA=C:\Users\youruser\AppData\Roaming
LOCALAPPDATA=C:\Users\youruser\AppData\Local
USERPROFILE=C:\Users\youruser
ちなみに我が家はWindows 7です。


この環境変数はOSによって違ったりするから、
複数OSで動くことを目指すとなるとちゃんと確認しないと辛いし、
user.homeで取った方が賢いな。
XPや2003と、Vista以降ではAPPDATAの場所が違うので、
APPDATAで取ってひとつ上のディレクトリというのは不味い結果になる。


そういう意味では、正しいAppDataの取得方法というのは、OS判定が必要なんだろう。
os.nameを取って分岐だな。