2014-03-12 29 views
1

我們有一位客戶,他運行Windows 7安裝,用戶配置文件存儲在Intranet上的Windows Server上(稱爲「終端服務器環境」或其他就像我認爲的...)。在Windows 7上使用網絡用戶配置文件的Java屬性「user.home」

現在我在Java中對這些「外部」用戶配置文件有一些問題。

我將一些設置存儲在用戶主文件夾的一個文件夾中(Windows:C:\Users\username\,Mac:/Users/username/)。由於該應用程序是跨平臺的,因此我不使用Jave中的Windows環境變量%USERPROFILE%,而是使用本地Java屬性user.home

然而,這是什麼窗口CMD說了%USERPROFILE%變量:

>echo %USERPROFILE% 
C:\Users\vvw\ 

這是我得到的Java:

>System.getProperty("user.home") 
C:\windows\system32\config\systemprofile\ 

爲什麼Java屬性user.home默認這個陌生目錄?

什麼是最好的方式來得到正確的用戶家庭目錄在Java和Mac和Windows?


更新: 重新安裝Java並重新啓動幫助。但是,很高興知道這也被追蹤爲a bug in the Java Bug Database,這將在Java 8中修復。

+1

看起來好像您的java.exe在系統帳戶下運行(例如作爲服務)。看看你的程序如何在該環境中運行。 – Durandal

回答

2

閱讀this article,有人遇到同樣的問題。

因爲您沒有說過,在mac上沒有問題,請在其他windows計算機上執行您的代碼。您的開發人員機器可能有問題。

目錄C:\windows\system32\config\systemprofile\看起來像用戶SYSTEM的用戶目錄,但我不確定。這可能意味着,Java正在用戶SYSTEM下運行。

相關問題