Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以使用诸如log4j.properties文件中的%APPDATA%之类的环境变量扩展?_Java_Logging_Environment Variables - Fatal编程技术网

Java 是否可以使用诸如log4j.properties文件中的%APPDATA%之类的环境变量扩展?

Java 是否可以使用诸如log4j.properties文件中的%APPDATA%之类的环境变量扩展?,java,logging,environment-variables,Java,Logging,Environment Variables,您能否在log4j.properties文件中使用环境变量扩展,如%APPDATA% 我需要将此文件作为我的应用程序的一部分进行部署,并在下一行中指定一个特定于用户的文件夹,如%APPDATA%。这可能吗 log4j.appender.A2.File=%APPDATA%/mylog.log 您不能直接引用环境变量,但可以引用Java“系统属性” 例如,启动应用程序时,请在命令行上设置system属性: java -Dapp.data="%APPDATA%" ... log4j.appende

您能否在
log4j.properties
文件中使用环境变量扩展,如
%APPDATA%

我需要将此文件作为我的应用程序的一部分进行部署,并在下一行中指定一个特定于用户的文件夹,如%APPDATA%。这可能吗

log4j.appender.A2.File=%APPDATA%/mylog.log

您不能直接引用环境变量,但可以引用Java“系统属性”

例如,启动应用程序时,请在命令行上设置system属性:

java -Dapp.data="%APPDATA%" ...
log4j.appender.A2.File=${app.data}/mylog.log
在log4j.properties文件中,参考在命令行上设置的系统属性:

java -Dapp.data="%APPDATA%" ...
log4j.appender.A2.File=${app.data}/mylog.log

由于系统的体系结构,我无法以您描述的方式创建任何Java系统变量。是否有我可以使用的内置Java系统属性?关于
user.dir
?%APPDATA%=%USERPROFILE%\Application Data=System.getProperty(“user.home”)\Application DataSorry,它是System.getProperty(“user.home”)=%USERPROFILE%@CraigJ您能设置Windows环境变量吗?如果是这样的话,它将在JVM启动时被拾取,就像它是在命令行中指定的一样。@erickson:
${user.home}/Application Data
对我来说很好。此路径在Win7上解析为
%USERPROFILE%\AppData\Roaming
,这正是我想要的。