JavaWeb创建的文件夹跑到tomcat/bin中
Posted 光何
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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运行程序不是真正的程序启动路径。
以上是关于JavaWeb创建的文件夹跑到tomcat/bin中的主要内容,如果未能解决你的问题,请参考以下文章
通过 Intellij 的 Tomcat/Docker 说...“找不到 /Users/blah/yadda/tomcat/bin/setclasspath.sh 这个文件是运行这个程序所必需的”