天蓬老师2017-04-17 15:52:47
この変数の定義は、Java のバージョンによって異なります。
java7 以前のバージョンでは、jvm 環境変数 user.home は、Windows システムのデスクトップ フォルダーの上位ディレクトリとして定義されています。デスクトップの場所はレジストリの HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell FoldersDesktop から読み取られ、その値は通常 %userprofile%desktop です。したがって、その上位レベルのディレクトリ、つまり user.home は通常、%userprofile%、つまり c:documents and settingsyourusername または c:usersyourusername にマップされます。これは、%userprofile% 文字列に解析されるものの、ディレクトリ パス (http://bugs.java.com/view_bug.do?bug_id=4787931) にはさらに解析されない win7 のバグの可能性があります。
したがって、この問題は Java8 で修正され、user.home はシステム %userprofile% 変数に直接マップされます。これは通常、ユーザーのホーム ディレクトリ、つまり c:usersyourusername です。
要約すると、この変数をシステム環境変数 userprofile として扱うだけです:
Environment.GetEnvironmentVariable("userprofile");
または
Environment.GetFolderPath(Environment.SpecialFolder. UserProfile);