这是有史以来最奇怪的事情。我正在使用通过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,问题仍然存在。
答案 0 :(得分:1)
尝试在目录名中使用正斜杠。我用反斜杠拉出了很多头发,实际上是逃避了一条路径,例如C:\temp
指向C:<tab>emp
。我甚至在Windows上完全放弃使用反斜杠:Java会正确转换正斜杠:C:/temp/