Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java系统属性的不同行为';java.io.tmpdir';_Java_Operating System - Fatal编程技术网

Java系统属性的不同行为';java.io.tmpdir';

Java系统属性的不同行为';java.io.tmpdir';,java,operating-system,Java,Operating System,当我尝试获取字符串tempdir=System.getProperty(“java.io.tmpdir”); 它将返回我的操作系统“temp”目录路径。e、 g.C:\Users\DATAGU~1\AppData\Local\Temp\在普通java应用程序中。对 但是当我试图在部署在tomcat6上的web应用程序上获得相同的属性时 它将返回tomcat临时目录路径(例如D:\tomcat6\temp)。有人知道为什么会这样吗? 还有什么方法可以从我的web应用程序中获取默认的OS temp目

当我尝试获取字符串tempdir=System.getProperty(“java.io.tmpdir”); 它将返回我的操作系统“temp”目录路径。e、 g.C:\Users\DATAGU~1\AppData\Local\Temp\在普通java应用程序中。对

但是当我试图在部署在tomcat6上的web应用程序上获得相同的属性时 它将返回tomcat临时目录路径(例如D:\tomcat6\temp)。有人知道为什么会这样吗? 还有什么方法可以从我的web应用程序中获取默认的OS temp目录路径,因为我需要在temp目录中存储一些文件,该目录应该是OS temp目录

我也尝试过: File temp=File.createTempFile(“临时文件”、“tmp”);System.out.println(“临时文件:+Temp.getAbsolutePath())

此方法与上述方法具有相同的行为。 有人知道吗:)

默认临时文件目录由系统属性java.io.tmpdir指定。在UNIX系统上,此属性的默认值通常为“/tmp”或“/var/tmp”;在Microsoft Windows系统上,它通常是“C:\WINNT\TEMP”。当调用Java虚拟机时,可以为该系统属性指定不同的值,但是对该属性的编程更改不能保证对该方法使用的临时目录产生任何影响

因此,Tomcat必须设置
java.io.tmpdir
系统属性。如果您确实需要使用不同的值,则必须在那里提供它


或者只需使用
File.createTempFile(String,String,File)
函数(我将其链接到上面的源代码)来提供目录。这可能会更理想,因为您不必与Tomcat争夺谁可以设置系统属性。

Yeh Mike我同意您的意见,不必手动设置系统属性,而是手动设置文件。createTempFile(String,String,null)方法也可以这样做-意味着它返回Tomcat临时目录路径,而不是我需要的路径(操作系统路径),因为windows和linux计算机的路径可能不同。此外,我不想在此方法中手动设置文件路径。