20230223更新:Spring Boot中的classpath路径获取及相关介绍

Java项目中classpath类路径是什么

20230223更新:Spring Boot中的classpath路径获取及相关介绍

2023 年 02 月 23 日 10 时 59 分 56 分进行了更新,更新者是 ThinkStu。

类路径指的是编译之后的 target 文件夹下的 WEB-INF/class 文件夹。下面这篇文章主要给大家介绍了关于 Java 项目中类路径是什么的相关资料,需要的朋友可以参考下。

目录

Spring Boot

一、简介

Spring Boot 中的 classpath 类路径,一方面指的是程序在打包前的/java/目录加上/resource 目录;另一方面指的是程序在打包后生成的/classes/目录。这两者实际上指的是同一个目录,且其中包含的文件内容完全相同。

二、获取classpath路径

以下两种方式存在问题,不能用于生产环境。因为把程序打成 jar 包后,由于 jar 包本质是压缩文件,不能直接被打包,所以生成的路径中会包含感叹号!,从而导致路径定位错误,例如:jar!/BOOT-INF/classes!/application.yml(无此文件或目录)。

// 方式一:
获取默认类加载器所获取资源的路径,这个路径被存储在字符串 path1 中,其具体路径为 ClassUtils.getDefaultClassLoader().getResource("").getPath();
// 方式二:
获取类路径的 URL 为 ResourceUtils.getURL("classpath:"),然后获取该 URL 的路径为 path2 。

此时,若我们希望读取 jar 包内的文件,那么可以选用第 3 种方式,即不读取路径,直接读取文件流。

// 方式 三
InputStream input 等于 ClassUtils 。
        .getDefaultClassLoader()
获取资源流为“application.yml”。
创建一个名为 reader 的读取器,它是通过将输入流 input 与编码“UTF-8”进行关联而创建的。

三、获取项目路径

上面介绍了获取 classpath 路径的方法之后,有时我们会有这样的需求,即只想获取当前程序所在的路径或者 jar 包所在的路径。那么,在这种情况下,又该如何去获取呢?

// 方式一:
File file = new File(".");
文件路径 1 等于文件获取的绝对文件路径。
// 方式二:
系统属性“user.dir”所对应的路径为 String path2 。

两者方式并无优劣之分,具体使用哪种取决于你的爱好~

classpath 和 classpath* 区别:

classpath:只会到你的class路径中查找找文件;

classpath*包含的内容有:一是包含 class 路径;二是还包括在 jar 文件中的(class 路径)进行查找。

总结

这篇关于 Java 项目中 classpath 类路径是什么的文章到此就介绍完了。更多关于 classpath 类路径是什么的内容,可以搜索脚本之家以前的文章,或者继续浏览下面的相关文章。希望大家以后多多支持脚本之家!

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

26阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

26阅读