为什么我不能在%CATALINA_TMPDIR%中创建文件夹?

时间:2015-07-16 01:01:05

标签: java tomcat java-io catalina

这是有史以来最奇怪的事情。我正在使用通过IntelliJ IDE使用Tomcat运行的应用程序。此应用程序的一部分在配置的%CATALINA_TMPDIR%中创建一个文件夹。出于某种原因,无论我在哪里指向%CATALINA_TMPDIR%,java都无法在那里创建文件夹,但它可以在其他地方创建一个文件夹。

例如,如果 CATALINA_TMPDIR=C:\Users\dallend\.IntelliJIdea14\system\tomcat\Unnamed_datasite_7\temp然后我的应用无法在那里创建文件夹,但可以在我创建的文件夹C:\Temp中创建它。

然后,如果我更改为CATALINA_TMPDIR=C:\Temp,该应用无法在那里创建目录,但可以在C:\SomewhereElse创建一个目录。

从调试开始,似乎java.io.File尝试创建目录,但WinNTFileSystem.public native boolean createDirectory()方法无法成功创建它。

为什么会发生这种情况?我需要使用IntelliJ,Java或我的操作系统进行调整吗?有没有人遇到过这个?

编辑:我已尝试独立运行Tomcat,问题仍然存在。

1 个答案:

答案 0 :(得分:1)

尝试在目录名中使用正斜杠。我用反斜杠拉出了很多头发,实际上是逃避了一条路径,例如C:\temp指向C:<tab>emp。我甚至在Windows上完全放弃使用反斜杠:Java会正确转换正斜杠:C:/temp/