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标签控制。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<directory>/Users/eleme/Downloads/servlet-demo/target/classes/eleme</directory>
</build>
Spring项目中的classpath 在Spring项目中,classpath路径通常包括以下几个部分:
src/main/java:这个目录通常包含项目的主要Java源代码。src/main/resources:这个目录通常用于存放配置文件、SQL脚本、属性文件(.properties)、国际化文件、Spring XML配置文件等。所有在此目录下的文件在构建项目时会被复制到项目的classpath下。src/test/java:这个目录包含项目的测试代码。src/test/resources:这个目录用于存放测试环境下的配置文件。target/classes:Maven构建项目后,src/main/java和src/main/resources目录下的文件(Java编译后的.class文件和资源文件)会被复制到这个目录下。target/test-classes:类似地,src/test/java和src/test/resources目录下的文件在编译后会被复制到这个目录下。target/dependency:这个目录包含所有的Maven依赖项。Maven在构建项目时会下载所有的依赖项并将它们复制到这个目录下。
需要注意的是,这只是一个通常的Spring项目的目录结构,实际的目录结构可能会因项目的具体需求而有所不同。具体的classpath配置可以在Maven或Gradle的构建文件中进行配置。
在Maven项目中,classpath是由Maven自动管理的。当你在pom.xml文件中添加依赖时,Maven会自动将这些依赖项添加到项目的classpath中。
例如,假设你想将Spring框架添加到项目的classpath中,你可以在pom.xml的<dependencies>标签中添加以下代码:
<dependency> 2 <groupId>org.springframework</groupId> 3 <artifactId>spring-context</artifactId> 4 <version>5.3.10</version> 5</dependency>
保存pom.xml文件后,Maven会自动下载Spring框架的JAR文件以及它的依赖项,并将它们添加到项目的classpath中。
你不需要手动配置classpath,因为Maven会自动处理这些配置。然而,有时你可能需要在项目的resources目录中添加一些特定的文件,如配置文件、SQL脚本等。在这种情况下,你需要确保这些文件在构建项目时被复制到输出目录。
要配置资源目录,你可以在pom.xml的<build>标签中添加以下代码:
<build> 2 <resources> 3 <resource> 4 <directory>src/main/resources</directory> 5 </resource> 6 </resources> 7</build>
这将告诉Maven在构建项目时将src/main/resources目录下的文件复制到输出目录(默认为target/classes)。
总之,你通常不需要手动配置Maven项目的classpath,因为Maven会自动管理依赖项和资源文件。只需在pom.xml文件中添加依赖和配置资源目录,Maven就会自动处理classpath。