当我试图获得字符串tempdir =System.getProperty(“java.io.tmpdir”)时,它将返回我的操作系统'temp‘目录路径。例如C:\Users\DATAGU~1\AppData\Local\Temp\在普通java应用程序中。没错。
但是,当我试图在部署在tomcat6上的web应用程序上获得相同的属性时,它将返回tomcat目录路径(例如D:\tomcat6\ temp )。有人知道为什么会发生这种事吗?另外,是否有任何方法从我的web应用程序中获取默认的OS临时目录,因为我需要将一些文件存储在临时目录中,这个目录应该是OS临时目录。
我也尝试过: File temp = File.createTempFile("temp- file ","tmp");System.out.println("Temp文件:“+ temp.getAbsolutePath());
此方法具有与上述方法相同的行为。有没有人知道:)?
发布于 2015-04-16 07:50:19
默认的临时文件目录由系统属性java.io.tmpdir指定.在UNIX系统上,这个属性的默认值通常是"/tmp“或"/var/tmp";在Microsoft系统上,它通常是"C:\WINNT\TEMP”。在调用Java虚拟机时,该系统属性可能会被赋予不同的值,但对该属性的编程更改不能保证对此方法使用的临时目录产生任何影响。
因此,Tomcat必须设置java.io.tmpdir系统属性。如果您确实需要一个不同的值来使用,您将不得不提供它。
或者只使用File.createTempFile(String, String, File)函数(我将其链接为上面的源代码)来提供目录。这可能会更理想,因为您不必与Tomcat争谁来设置系统属性。
https://stackoverflow.com/questions/29668260
复制相似问题