2012-02-10 11 views
8

ユーザーがWindowsを使用しているときに、%APPDATA%で設定された場所にプログラムを保存しようとしています。しかし、System.getProperty("temp.dir");はそれを返しません。 状態保存の目的で、Windowsで%APPDATA%変数の値を取得するにはどうすればよいですか?Windowsの%APPDATA%location変数の値をJavaで取得するにはどうすればよいですか?

+0

が重複する可能性のhttpを行うことができます:// stackoverflowのを.com/questions/1198911/how-to-get-local-application-data-folder-in-java –

+0

より良い複製はhttp://stackoverflow.com/questions/585534/what-is-the-bestway- to-find-the-user-home-directory-in-java –

答えて

20

利用System.getenv()

System.getenv("APPDATA") 

しかし、私は

System.getProperty("user.home") 

はそれがより移植性があるので、それは正確に同じことないにもかかわらず優先されなければならない。だと思います

+0

Windows以外のOSで 'System.getenv(" APPDATA ")'を実行しようとするとどうなりますか? 'APPDATA'がWindows固有であるとすれば、何らかのエラーが発生すると思います。 – DavidB

+1

@DavidB:エラーはありません。ヌル値を返します。 –

+0

素晴らしいです。ありがとうございました! – DavidB

7

APPDATAは、あなたのアプリケーション固有のデータが保存されている場所を与えるのWindows固有の環境変数であるので、あなたは、プラットフォームに依存しないコードを書くことを見ていない場合は、あなただけのSystem.getenv("APPDATA");

関連する問題