微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么时候System.getProperty“java.io.tmpdir”返回“c:\ temp”

只是好奇当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"));

总是返回 –

线程“main”中的exceptionjava.lang.NoClassDefFoundError:org / apache / hadoop / util / PlatformName

如何读取Java中的.csv文件,其中包含多行的单元格?

在Windows 8上使用Avatar.js在Java 8 Nashorn上运行Node.js“java.library.path中没有avatar-js”

Web服务Apache CXF的错误

做2个java进程共享JVM

C:UsersadminAppDataLocalTemp ie %TEMP%

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

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

如何在运行时模拟Tomcat窗口服务?

Java内存不足错误(本机内存),进程大小限制被击中(32位Linux)

Windows沙盒

从Java运行“who -m”命令会产生空的结果

Delphi xe5 exec root命令转换

在MS Windows中,临时目录由环境变量TEMP 。 在XP中,临时目录是按用户设置的本地设置温度。

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

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

如果你设置

-Djava.io.tmpdir=C:temp

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

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

由TMP环境变量指定的路径。

由TEMP环境变量指定的路径。

USERPROFILE环境变量指定的路径。

Windows目录。

另一方面,请查看TMP和TEMP为什么共存的历史原因 。 这真的值得一读。

%TEMP%环境变量的值通常是特定于用户的,Windows会针对当前登录用户帐户进行设置。 某些用户帐户可能没有用户配置文件,例如,当您的进程在SYstem , LOCALSYstem或其他内置帐户中作为服务运行时,或者被禁用了“ 创建用户配置文件”选项的AppPool身份的IIS应用程序调用时。 所以,即使你没有明确地覆盖%TEMP%变量,Windows也可以使用c:temp甚至c:windowstemp文件夹,比如说,非常用的用户帐户。 而更重要的是,进程可能没有这个目录的访问权限!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐