系统项目中须要设置缓存目录,本来项目中的目录设置为D:/cache目录,这怎么成?因而手动改为了cache目录,本来想使用了相对路径,web项目可以把缓存路径设置到tomcat的webapp的具体项目中,谁知道项目启动后在web项目目录中根本找不到这个目录,什么缘由?java
原来这是java读取文件机制的问题,若是直接这样写路径new File("a.***"),那么tomcat就会从程序启动的地方去建立这个文件(Java项目中也是如此),那么web应用是从有tomcat来执行的,tomcat这个程序是从哪里启动文件是startup.bat,位置是tomcat/bin。web
咱们前面说了,普通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运行程序不是真正的程序启动路径。tomcat