只是好奇System.getProperty("java.io.tmpdir")
何时返回"c:\temp"
。根据java.io.File Java Docs的说法-
默认的临时文件目录由系统属性java.io.tmpdir指定。在UNIX系统上,该属性的默认值通常是"/tmp“或"/var/tmp";在Microsoft Windows系统上,它通常是"c:\temp”。当Java虚拟机被调用时,可以为该系统属性赋予不同的值,但不保证对该属性的编程更改对该方法所使用的临时目录有任何影响。
但在我的情况下-
System.out.println(System.getProperty("java.io.tmpdir"));
总是会返回-
C:\Users\admin\AppData\Local\Temp\ i.e. %TEMP%
在什么情况下会返回"c:\temp"
?
编辑:如果我将%TEMP%更改为C:\Temp,那么我将得到C:\Temp,对吗?但是文档显示的是C:\Temp,而不是c:\Temp。
发布于 2013-05-03 13:50:08
在MS Windows中,临时目录由环境变量TEMP
设置。在XP中,临时目录针对每个用户设置为Local Settings\Temp。
如果将TEMP环境变量更改为C:\temp
,则在运行以下命令时会得到相同的结果:
System.out.println(System.getProperty("java.io.tmpdir"));
发布于 2013-05-03 13:47:23
如果您设置了
-Djava.io.tmpdir=C:\temp
发布于 2015-04-18 19:40:31
一方面,当您调用System.getProperty("java.io.tmpdir")
指令时,Win32调用Java的函数GetTempPath
。根据the MSDN的说法:
GetTempPath函数按以下顺序检查环境变量是否存在,并使用找到的第一个路径:
另一方面,请查看the historical reasons on why TMP
and TEMP
coexist。它真的很值得一读。
https://stackoverflow.com/questions/16352326
复制相似问题