JavaWeb创建的文件夹默认在tomcat/bin中

  系统项目中需要设置缓存目录,原本项目中的目录设置为D:/cache目录,这怎么成?于是手动改成了cache目录,原本想使用了相对路径,web项目能够把缓存路径设置到tomcat的webapp的具体项目中,谁知道项目启动后在web项目目录中根本找不到这个目录,什么原因?

  原来这是java读取文件机制的问题,如果直接这样写路径new File("a.***"),那么tomcat就会从程序启动的地方去创建这个文件(Java项目中也是如此),那么web应用是从有tomcat来执行的,tomcat这个程序是从哪里启动文件是startup.bat,位置是tomcat/bin。

  我们前面说了,普通java项目也是如此,从程序启动的地方创建文件,那么文件路径不会是JDK中bin路径吧?不是这样的,看实验结果:

复制代码
1 package io.guangsoft.file;
2 import java.io.File;
3 public class CreateFile {
4     public static void main(String args[]) {
5         File file = new File("location.txt");
6         System.out.println(file.getAbsolutePath());
7     }
8 }
复制代码

  实验结果表明,默认的文件路径是eclipse项目路径,因为我们的项目从main函数启动,而main函数在eclipse项目中,同理web项目的启动入口main函数在tomcat的bin中的某个jar包。而jdk提供的仅是java运行程序不是真正的程序启动路径。

 

posted @   光何  阅读(3105)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

点击右上角即可分享
微信分享提示