为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

尚方宝剑之说 2019-12-20 10:44:43
我已经使用了TMP环境变量来控制诸如gcc将其写入临时文件的位置,但是我似乎找不到与Java的createTempFile API 等效的东西。是否存在这样的环境变量?
查看完整描述

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

嗯-由于这是由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是否遵循这些确切的约定,但是通过列出的每个平台上的行为,看来它们确实如此。


查看完整回答
反对 回复 2019-12-20
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

根据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系统上的环境变量


查看完整回答
反对 回复 2019-12-20
?
三国纷争

TA贡献1804条经验 获得超7个赞

您可以设置_JAVA_OPTIONS环境变量。例如,在bash中可以达到目的:


export _JAVA_OPTIONS=-Djava.io.tmpdir=/new/tmp/dir

我把它放在我的bash登录脚本中,似乎可以解决问题。


查看完整回答
反对 回复 2019-12-20
  • 3 回答
  • 0 关注
  • 2597 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信