当前位置: 首页 > 知识库问答 >
问题:

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

慎建本
2023-03-14

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

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

我也试过:文件temp=File.createTempFile("temp-file","tmp"); System.out.println("Temp file:"temp.getAbsoltePath());

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

共有1个答案

陈霄
2023-03-14

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

来自JavaDocs

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

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

 类似资料:
  • 问题内容: 在Java中,我们使用System.setProperty()方法来设置一些系统属性。根据本文的介绍,使用系统属性有些棘手。 System.setProperty()可能是一个邪恶的调用。 这是100%线程敌对的 它包含超全局变量 当这些变量在运行时发生神秘变化时,调试非常困难。 我的问题如下。 系统属性的范围如何?它们是针对每个虚拟机专用还是具有“超全局性”,在每个虚拟机实例上共享相

  • 问题内容: 有没有更好的方法可以从命令行打印系统属性?由于我们可以设置属性,例如 不用写课就能做到吗? 如果不可能的话,为什么不能/可行/好用命令行呢? 问题答案: 您可以在Hotspot JVM 1.7版及更高版本(1.6版不支持)中使用该标志: 自2010年底以来,OpenJDK就一直支持该标志。 在http://marxsoftware.blogspot.de/2016/02/hotspot

  • 只是好奇什么时候系统。getProperty(“java.io.tmpdir”)返回“c:\temp”。根据java。io。文件Java文档- 默认临时文件目录由系统属性指定java.io.tmpdir.在UNIX系统上,此属性的默认值通常为“/tmp”或“/var/tmp”;在Microsoft Windows系统上,它通常为“c:\temp”。调用Java虚拟机时,可能会为此系统属性指定不同的

  • 问题内容: 我有一个运行的现有jar文件。它是Selenium RC服务器。我希望能够更改JVM httpProxy.host/port/etc系统值。一方面,我可以修改源代码并添加此功能。这将需要一些时间。还有另一种可能的方法吗?就像我自己的JAR(将设置这些JVM属性)在同一个JVM实例中调用selenium- rc(这样,它便能够修改其JVM变量的值)? 问题答案: 您可以使用以下命令在命令

  • 问题内容: 有没有一种简单的方法可以在命令行上为Java程序指定多个系统属性,而不是具有多个-D语句? 试图避免这种情况: 我以为我看到了一个例子,该例子之后有人使用一个引号引起来的字符串,但是我再也找不到该例子了。 问题答案: 答案是否定的。您可能已经看到了一个示例,其中有人会设置如下内容: 然后,应用程序将解析属性字符串的值以获得单个值。在您中,您可以将键值设为(假设可以保证输入格式): 另外

  • 问题内容: 在詹金斯中是否有任何“适当”的方法来更改系统属性?更改它们的最简单/最快的方法是什么?例如,我需要关闭无用的(在我的情况下)ping线程。 问题答案: 如果您确实想要快速简单的方法来更改系统属性,则可以使用脚本控制台 但这不会在重新启动后幸存下来。要使其永久,请将设置添加到java args。对于我(CentOS,Jenkins 2.7.1)而言,这大约是一半(对于其他发行版,我认为是