Java里的路径包括2个:workset(user.dir)的路径和classpath(java.class.path)的路径。
classpath路径其实是一个路径集合,但是和workset有关系。
public class HiYou {
public void hi(){
System.out.println("Hi,Yours!");
}
public static void main(String[] args){
System.out.println(System.getProperty("user.dir"));
String classPath = System.getProperty("java.class.path");
String[] classpathArr = classPath.split(":");
System.out.println("###################### classpathSize:" + classpathArr.length + " #########################");
for(String str : classpathArr) {
System.out.println(str);
}
}
}
复制代码
输出,挑出相关的
user.dir用户当前工作目录地址:/Users/eleme/Downloads/servlet-demo
###################### classpathSize:104 #########################
classpath地址组成
1.JVM自带的jar包的地址
/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/jre/*.jar
2.代码build编译后的地址
/Users/eleme/Downloads/servlet-demo/target/classes/eleme/classes
3.maven仓库中jar包的地址
/Users/eleme/.m2/maven-repository/*
4.IDEA的jar包地址
/Applications/IntelliJ IDEA CE 2.app/Contents/lib/idea_rt.jar
复制代码
classpath和user.dir相关的地方是:classpath中的项目代码编译结果输出地址的路径的前缀一般是user.dir,这个地址可以通过maven的build标签控制。
org.springframework.boot
spring-boot-maven-plugin
/Users/eleme/Downloads/servlet-demo/target/classes/eleme
复制代码
所以,当Spring报找不到配置文件时,你知道怎么解决了吗?