gpt4 book ai didi

java - 引用 root 的 Tomcat servlet 相对路径

转载 作者:行者123 更新时间:2023-11-28 22:16:43 25 4
gpt4 key购买 nike

我正在使用 Java Spring Boot 并部署到 Tomcat 8.1 webapp。

当我使用相对路径创建一个新的 File() 时,它指的是系统的绝对根目录。

例如,

File x = new File("./temp.txt");

System.out.println("X Path: " + x.getAbsolutePath());

输出是

/./temp.txt

这是为什么?我收到 Java.nio.File.AccessDeniedException,因为 Tomcat 没有写入根目录的权限。

该代码是创建缓存文件的第三方库,因此我无法仅更改为绝对路径。

是什么导致 Tomcat 使用/作为我的工作目录?

最佳答案

所以我确定了这个问题。 Tomcat,当作为服务执行时(CentOS:systemctl start tomcat),如果未设置,WorkingDirectory 默认为 root。

通过编辑/etc/systemd/system 中的 tomcat.service 文件并在 [Service] 部分下添加以下内容:

WorkingDirectory=/opt/tomcat

我能够移动第三方库正在写入的目录。

关于java - 引用 root 的 Tomcat servlet 相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44677790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com