1
我正在使用Java Spring Boot并部署到Tomcat 8.1 webapp。参考根的Tomcat servlet相对路径
当我用相对路径创建一个新的File()时,它指的是系统的绝对根。
例如,
File x = new File("./temp.txt");
System.out.println("X Path: " + x.getAbsolutePath());
输出是
/./temp.txt
这是为什么?我得到一个Java.nio.File.AccessDeniedException,因为Tomcat没有权限写入根目录。
代码是创建缓存文件的第三方库,所以我不能切换到绝对路径。
是什么导致Tomcat使用/作为我的工作目录?
我使用的第三方库专门使用了“./pemfile_cached”。上面的代码是我确认我得到相同的结果。这是第三方库,第197行:https://github.com/MachinePublishers/jBrowserDriver/blob/master/src/com/machinepublishers/jbrowserdriver/StreamConnectionClient.java –
您可能需要检查[此链接](https:/ /stackoverflow.com/questions/10680637/servlet-tomcat-relative-file-path)。 TLDR:你可以使用'System.setProperty(“user.dir”,)'来设置当前目录,而不是Tomcat的 –
Nathan
如果这样,我将把它作为最后的手段来保存。我宁愿不必为每个电话都明确地设置我目前的工作目录,但如果必须的话,我会的。我怀疑tomcat配置(或缺少配置)是问题,但我不知道从哪里开始寻找。 –