今天小编给大家分享一下Java项目中classpath类路径如何获取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、简介c
今天小编给大家分享一下Java项目中classpath类路径如何获取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
classpath
类路径在 Spring Boot 中既指程序在打包前的/java/
目录加上/resource
目录,也指程序在打包后生成的/classes/
目录。两者实际上指的是同一个目录,里面包含的文件内容一模一样。
以下两种方式均可,但是并不能用于生产环境,因为当我们把程序打成jar
包时,由于jar
包本质是压缩文件,无法被直接打包,所以生成的路径中会含有感叹号!
导致路径定位错误,例如:jar!/BOOT-INF/classes!/application.yml (No such file or directory)
// 方式一:String path2 = ClassUtils.getDefaultClassLoader().getResource("").getPath();// 方式二:String path3 = ResourceUtils.getURL("classpath:").getPath();
此时,如果我们想要读取jar
包内的文件,可以采取第 3 种方式不读取路径、直接读取文件流:
// 方式 三InputStream input = ClassUtils .getDefaultClassLoader() .getResourceAsStream("application.yml");Reader reader = new InputStreamReader(input, "UTF-8");
上面介绍了如何获取classpath
路径之后,其实有时候我们会发现自己只想获取当前程序所在路径或jar
包所在路径,那么此时又应该如何获取呢?
// 方式一:File file = new File(".");File path2 = file.getAbsoluteFile();// 方式二:String path3 = System.getProperty("user.dir");
两者方式并无优劣之分,具体使用哪种取决于你的爱好~
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.
以上就是“Java项目中classpath类路径如何获取”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。
--结束END--
本文标题: Java项目中classpath类路径如何获取
本文链接: https://www.lsjlt.com/news/349837.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0