首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >System.getProperty("java.io.tmpdir")何时返回"c:\temp“

System.getProperty("java.io.tmpdir")何时返回"c:\temp“
EN

Stack Overflow用户
提问于 2013-05-03 13:40:31
回答 4查看 270.5K关注 0票数 118

只是好奇System.getProperty("java.io.tmpdir")何时返回"c:\temp"。根据java.io.File Java Docs的说法-

默认的临时文件目录由系统属性java.io.tmpdir指定。在UNIX系统上,该属性的默认值通常是"/tmp“或"/var/tmp";在Microsoft Windows系统上,它通常是"c:\temp”。当Java虚拟机被调用时,可以为该系统属性赋予不同的值,但不保证对该属性的编程更改对该方法所使用的临时目录有任何影响。

但在我的情况下-

代码语言:javascript
复制
System.out.println(System.getProperty("java.io.tmpdir"));

总是会返回-

代码语言:javascript
复制
C:\Users\admin\AppData\Local\Temp\ i.e. %TEMP%

在什么情况下会返回"c:\temp"

编辑:如果我将%TEMP%更改为C:\Temp,那么我将得到C:\Temp,对吗?但是文档显示的是C:\Temp,而不是c:\Temp。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-03 13:50:08

在MS Windows中,临时目录由环境变量TEMP设置。在XP中,临时目录针对每个用户设置为Local Settings\Temp。

如果将TEMP环境变量更改为C:\temp,则在运行以下命令时会得到相同的结果:

System.out.println(System.getProperty("java.io.tmpdir"));

票数 136
EN

Stack Overflow用户

发布于 2013-05-03 13:47:23

如果您设置了

代码语言:javascript
复制
-Djava.io.tmpdir=C:\temp
票数 41
EN

Stack Overflow用户

发布于 2015-04-18 19:40:31

一方面,当您调用System.getProperty("java.io.tmpdir")指令时,Win32调用Java的函数GetTempPath。根据the MSDN的说法:

GetTempPath函数按以下顺序检查环境变量是否存在,并使用找到的第一个路径:

  1. 由TMP环境变量指定的路径。
  2. 由TEMP环境变量指定的路径。
  3. 由USERPROFILE环境Windows目录指定的路径。

另一方面,请查看the historical reasons on why TMP and TEMP coexist。它真的很值得一读。

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16352326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档