【发布时间】:2014-03-12 16:14:49
【问题描述】:
我们有一个客户运行其 Windows 7 安装,用户配置文件存储在 Intranet 上的 Windows Server 上(我认为它被称为“终端服务器环境”或类似的东西......)。
现在我在 Java 中遇到了一些关于这些“外部”用户配置文件的问题。
我将一些设置存储在用户主文件夹中的一个文件夹中(Windows:C:\Users\username\,Mac:/Users/username/)。因为该应用是跨平台的,所以我在 Jave 中不使用 windows 环境变量 %USERPROFILE%,而是使用原生 Java 属性 user.home。
但是,这是 windows CMD 对 %USERPROFILE% 变量所说的:
>echo %USERPROFILE%
C:\Users\vvw\
这就是我在 Java 中得到的:
>System.getProperty("user.home")
C:\windows\system32\config\systemprofile\
为什么Java属性user.home默认是这个奇怪的目录?
对于 Mac 和 Windows,在 Java 中更正用户主目录的最佳方法是什么?
更新: 重新安装java并重新启动有帮助。但是,很高兴知道这也被跟踪为 a bug in the Java Bug Database,这将在 Java 8 中得到修复。
【问题讨论】:
-
这看起来好像您的 java.exe 在系统帐户下运行(例如作为服务)。看看你的程序是如何在那个环境中运行的。
标签: java windows environment-variables terminal-services