84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
不同版本的java这个变量的定义不一样。在java7和之前的版本中,jvm环境变量 user.home 在 windows 系统中被定义为 desktop 文件夹的上级目录。而 desktop 的位置则是从注册表的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop 处读取,其值一般为 %userprofile%\desktop 。因此其上级目录,即 user.home 一般就被映射为 %userprofile% ,即 c:\documents and settings\yourusername 或 c:\users\yourusername 。这在win7里容易出现被解析成 %userprofile% 字符串而不会进一步解析成目录路径的bug:http://bugs.java.com/view_bug.do?bug_id=4787931 。因此java8中对该问题进行了修复,直接将 user.home 映射系统 %userprofile% 变量,一般是用户主目录,即 c:\users\yourusername 。综上所述,直接把这个变量当成是系统的环境变量 userprofile 就好啦:Environment.GetEnvironmentVariable("userprofile");或者Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
不同版本的java这个变量的定义不一样。
在java7和之前的版本中,jvm环境变量 user.home 在 windows 系统中被定义为 desktop 文件夹的上级目录。而 desktop 的位置则是从注册表的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop 处读取,其值一般为 %userprofile%\desktop 。因此其上级目录,即 user.home 一般就被映射为 %userprofile% ,即 c:\documents and settings\yourusername 或 c:\users\yourusername 。这在win7里容易出现被解析成 %userprofile% 字符串而不会进一步解析成目录路径的bug:http://bugs.java.com/view_bug.do?bug_id=4787931 。
因此java8中对该问题进行了修复,直接将 user.home 映射系统 %userprofile% 变量,一般是用户主目录,即 c:\users\yourusername 。
综上所述,直接把这个变量当成是系统的环境变量 userprofile 就好啦:
Environment.GetEnvironmentVariable("userprofile");
或者
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);