广告
返回顶部
首页 > 资讯 > 精选 >Java项目中classpath类路径如何获取
  • 216
分享到

Java项目中classpath类路径如何获取

2023-07-05 05:07:44 216人浏览 安东尼
摘要

今天小编给大家分享一下Java项目中classpath类路径如何获取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、简介c

今天小编给大家分享一下Java项目中classpath类路径如何获取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、简介

classpath类路径在 Spring Boot 中既指程序在打包前的/java/目录加上/resource目录,也指程序在打包后生成的/classes/目录。两者实际上指的是同一个目录,里面包含的文件内容一模一样。

Java项目中classpath类路径如何获取

Java项目中classpath类路径如何获取

二、获取classpath路径

以下两种方式均可,但是并不能用于生产环境,因为当我们把程序打成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 和 classpath* 区别: 

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

classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找. 

Java项目中classpath类路径如何获取

以上就是“Java项目中classpath类路径如何获取”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Java项目中classpath类路径如何获取

本文链接: https://www.lsjlt.com/news/349837.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作