gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:35 25 4
gpt4 key购买 nike

当我尝试获取 String tempdir = System.getProperty("java.io.tmpdir"); 时它将返回我的操作系统“temp”目录路径。例如普通 java 应用程序中的 C:\Users\DATAGU~1\AppData\Local\Temp\。没错。

但是当我尝试在部署在 tomcat6 上的 Web 应用程序上获取相同的属性时它返回给我 tomcat 临时目录路径(例如 D:\tomcat6\temp)。有人可以知道为什么会发生这种情况吗?还有什么方法可以从我的网络应用程序获取默认的操作系统临时目录路径,因为我需要在临时目录中存储一些文件,该目录应该只是操作系统临时目录。

我也尝试过:文件 temp = File.createTempFile("temp-file", "tmp"); System.out.println("临时文件:"+ temp.getAbsolutePath());

此方法与上述方法具有相同的行为。有人有任何想法吗:)?

最佳答案

The default temporary-file directory is specified by the system property java.io.tmpdir. On UNIX systems the default value of this property is typically "/tmp" or "/var/tmp"; on Microsoft Windows systems it is typically "C:\WINNT\TEMP". A different value may be given to this system property when the Java virtual machine is invoked, but programmatic changes to this property are not guaranteed to have any effect upon the temporary directory used by this method.

From the JavaDocs

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

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

关于java - Java系统属性的不同行为 'java.io.tmpdir',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29668260/

25 4 0
文章推荐: c++ - 使用 SWIG 和 MinGW 创建的 Lua 模块,导致解释器在退出时崩溃
文章推荐: html - 忽略来自另一个
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com