首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/tmp的最佳窗口等效值是什么?

/tmp的最佳窗口等效值是什么?
EN

Stack Overflow用户
提问于 2009-08-25 16:44:17
回答 5查看 6.8K关注 0票数 16

我希望改进java应用程序的跨平台行为。但是,它的测试套件目前假定存在/tmp目录。

窗口平台上的最佳等效位置是什么?注:我绝对不想假设用户拥有管理权限,但我确实希望它至少能在XP、Vista和Windows7上工作。

是否有一个现有的环境变量会有所帮助,和/或一组我可以按偏好顺序尝试的首选位置?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-08-25 16:47:13

系统属性java.io.tmpdir可用于用户的临时目录:

代码语言:javascript
复制
File tmp = new File(System.getProperty("java.io.tmpdir"));

在您想要搜索临时文件的实例中,这可能比File.createTempFile (在任何情况下都使用tmpdir系统属性)更可取(例如,从您的应用程序的前一次调用中缓存数据,听起来可能是您的问题中的情况)。

可以通过在命令行上提供运行时覆盖( JVM参数):-Djava.io.tmpdir=C:\foo\bar来更改系统属性的值。

注意:可以通过使用相关的File构造函数来避免"trailing slash" issue descibed in the comments to 's answer below

代码语言:javascript
复制
String fileName = "foobar.txt"
String tmpPath = System.getProperty("java.io.tmpdir");
File tmpFile;
tmpFile = new File(tmpPath + File.separator + fileName); //possible problem
tmpFile = new File(new File(tmpPath), fileName); //OK!

显然,windows还有一个DOS环境变量DOS,它可以从您拥有的任何脚本中使用。

票数 31
EN

Stack Overflow用户

发布于 2009-08-25 16:47:37

为什么不使用java.io.File.createTempFile()(http://java.sun.com/javase/6/docs/api/java/io/File.html#createTempFile(java.lang.String,%20java.lang.String%29)? )

票数 8
EN

Stack Overflow用户

发布于 2009-08-25 16:49:39

Windows定义了环境变量TEMP和TMP,它们都给出了当前用户的临时文件夹。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1329493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档