我的程序执行一些相当密集的操作,所以我使用临时文件来加快速度。我使用以下Java代码:
File scratchFile = new File(System.getProperty("java.io.tmpdir") + "WCCTempFile.tmp");
if (!scratchFile.exists())
scratchFile.createNewFile();这段代码在Mac和Windows上运行得很好。它在Java临时目录中创建一个临时文件,该目录由操作系统决定。
但是,当我在Linux (特别是Linux Mint)上尝试这个程序时,我在"scratchFile.createNewFile()“行得到以下错误
java.io.IOException: Permission Denied我真的被这个错误搞糊涂了,因为我认为通过System.getProperty("java.io.tempdir")方法收集的临时目录应该是用户可以写入的目录(而且它在其他操作系统上)。在Linux上不是这样吗?有没有办法授予对临时目录的访问权限?有没有我应该使用的其他目录?
发布于 2013-02-13 09:39:50
在Linux上,java.io.tmpdir通常设置为/tmp (注意缺少的尾部/)。使用the two-parameter File constructor要干净得多,而不是摆弄额外的嵌入斜杠
File scratchFile = new File(System.getProperty("java.io.tmpdir"),"WCCTempFile.tmp");这样你就不必担心尾部的斜杠了。
发布于 2013-02-13 09:35:35
如果您有权限,可以使用chmod更改目录的权限。
https://stackoverflow.com/questions/14845045
复制相似问题