2014-12-01 22 views
2

我正在嘗試使用Java用法跟蹤器來審計Java用法。看到以下信息:https://docs.oracle.com/javacomponents/usage-tracker/overview/在用戶跟蹤器的Java屬性文件中解析用戶名

一個屬性文件中指定的屬性,其中的日誌將被保存(用戶歸屬位置):

# Settings for logging to a file: 
# Use forward slashes (/) because backslash is an escape character in a 
# properties file. 
com.oracle.usagetracker.logToFile = ${user.home}/.java_usagetracker 

這將創建該文件:C:\用戶\ CURRENTUSER \ .java_usagetracker正確。

如何將當前用戶的登錄名和/或主機名添加到文件中?

我已經試過:

com.oracle.usagetracker.logToFile = ${user.home}/${user.name}.java_usagetracker 

和其他一些變化,但不能正確的霸氣。它似乎user.name是一個有效的屬性(請參見:https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

僅供參考:我試圖將日誌文件放在用戶的名稱將不會在路徑中的網絡位置,這就是爲什麼我需要文件名中的用戶名。

回答

-1

我相信你正在嘗試替換屬性文件中的內置環境變量值。你忘記的是,Java屬性文件沒有編譯成類似於'.java'文件。這些屬性文件必須通過Properties庫來讀取。

類似的語句已經在這裏找到答案: Properties file : Use key as variable

+0

所以$ {的user.home}在別處定義和解析但$ {user.name}顯然不是?對不起,我是Java不可知論者。 – thewolf 2014-12-02 13:40:53

0

如果你看看Oracle's documentation你會看到,他們只指定$ {}的user.home將擴大。沒有提及其他任何屬性被允許:

您可以在路徑名中指定$ {user.home}。該屬性將展開到用戶的主目錄。例如(忽略換行符):

com.oracle.usagetracker.logToFile = $ {的user.home}/java_usagetracker