环境变量来控制java.io.tmpdir?

我已经使用了TMP环境变量来控制诸如gcc将其写入临时文件的位置,但是我似乎找不到与Java的createTempFile API 等效的东西。


是否存在这样的环境变量?


尚方宝剑之说
浏览 2598回答 3
3回答

浮云间

嗯-由于这是由JVM处理的,因此我稍微研究了OpenJDK VM源代码,以为OpenJDK所做的事情可能模仿Java 6及以前的版本。除了在Windows上,还不能保证有其他方法可以做到这一点。在Windows上,OpenJDK的get_temp_directory()函数对Win32 API进行调用GetTempPath();这就是Windows上Java如何反映TMP环境变量的值的方式。在Linux和Solaris上,相同的get_temp_directory()函数返回的静态值/tmp/。我不知道实际的JDK6是否遵循这些确切的约定,但是通过列出的每个平台上的行为,看来它们确实如此。

收到一只叮咚

根据java.io.FileJava Docs默认的临时文件目录由系统属性java.io.tmpdir指定。在UNIX系统上,此属性的缺省值通常为“ / tmp”或“ / var / tmp”;默认值为“ / tmp”或“ / var / tmp”。在Microsoft Windows系统上,通常为“ c:\ temp”。调用Java虚拟机时,可以为此系统属性赋予不同的值,但不能保证对此属性的编程更改对此方法使用的临时目录没有任何影响。要指定java.io.tmpdirSystem属性,可以按如下所示调用JVM:java -Djava.io.tmpdir=/path/to/tmpdir默认情况下,该值应来自TMPWindows系统上的环境变量

三国纷争

您可以设置_JAVA_OPTIONS环境变量。例如,在bash中可以达到目的:export _JAVA_OPTIONS=-Djava.io.tmpdir=/new/tmp/dir我把它放在我的bash登录脚本中,似乎可以解决问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java