问题描述
我使用了 TMP
环境变量来控制诸如 gcc 在何处写入临时文件之类的内容,但我似乎找不到 java 的 createTempFile API.
I've used the TMP
environment variable to control things like where gcc writes it's temporary files, but I can't seem to find an equivalent for java's createTempFile API.
这样的环境变量存在吗?
Does such an environment variable exist?
推荐答案
嗯——由于这是由 JVM 处理的,所以我深入研究了 OpenJDK VM 源代码,认为 OpenJDK 所做的可能会模仿所做的由 Java 6 及更早版本提供.除了在 Windows 上,还有其他方法可以做到这一点并不令人放心.
Hmmm -- since this is handled by the JVM, I delved into the OpenJDK VM source code a little bit, thinking that maybe what's done by OpenJDK mimics what's done by Java 6 and prior. It isn't reassuring that there's a way to do this other than on Windows.
关于 Windows,OpenJDK 的 get_temp_directory()
函数对 GetTempPath()
进行 Win32 API 调用;这就是在 Windows 上,Java 反映 TMP
环境变量的值的方式.
On Windows, OpenJDK's get_temp_directory()
function makes a Win32 API call to GetTempPath()
; this is how on Windows, Java reflects the value of the TMP
environment variable.
关于 Linux 和 Solaris,相同的 get_temp_directory()
函数返回 /tmp/
的静态值.
On Linux and Solaris, the same get_temp_directory()
functions return a static value of /tmp/
.
我不知道实际的 JDK6 是否遵循这些确切的约定,但从每个列出的平台上的行为来看,它们似乎确实如此.
I don't know if the actual JDK6 follows these exact conventions, but by the behavior on each of the listed platforms, it seems like they do.
这篇关于控制 java.io.tmpdir 的环境变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!