Java项目中classpath类路径是什么

 更新时间:2023年02月23日 10:59:56   作者:ThinkStu  
classpath指的是类路径,也就是编译之后的target文件夹下的WEB-INF/class文件夹,下面这篇文章主要给大家介绍了关于Java项目中classpath类路径是什么的相关资料,需要的朋友可以参考下

Spring Boot

一、简介

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

二、获取classpath路径

以下两种方式均可,但是并不能用于生产环境,因为当我们把程序打成jar包时,由于jar包本质是压缩文件,无法被直接打包,所以生成的路径中会含有感叹号!导致路径定位错误,例如:jar!/BOOT-INF/classes!/application.yml (No such file or directory)

// 方式一:
String path1 = ClassUtils.getDefaultClassLoader().getResource("").getPath();

// 方式二:
String path2 = 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 path1 = file.getAbsoluteFile();

// 方式二:
String path2 = System.getProperty("user.dir");

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

classpath 和 classpath* 区别: 

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

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

总结

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

相关文章

  • SpringBoot实现文件在线预览功能的全过程

    SpringBoot实现文件在线预览功能的全过程

    我们开发业务系统的时候,经常有那种文档文件在线预览的需求,下面这篇文章主要给大家介绍了关于SpringBoot实现文件在线预览功能的相关资料,需要的朋友可以参考下
    2021-11-11
  • java实现拼图游戏

    java实现拼图游戏

    这篇文章主要为大家详细介绍了java实现拼图游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Java源码解析之HashMap的put、resize方法详解

    Java源码解析之HashMap的put、resize方法详解

    这篇文章主要介绍了Java源码解析之HashMap的put、resize方法详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有很大的帮助,需要的朋友可以参考下
    2021-04-04
  • 使用maven插件对java工程进行打包过程解析

    使用maven插件对java工程进行打包过程解析

    这篇文章主要介绍了使用maven插件对java工程进行打包过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Java SHA-256加密的两种实现方法详解

    Java SHA-256加密的两种实现方法详解

    这篇文章主要介绍了Java SHA-256加密的两种实现方法,结合实例形式分析了java实现SHA-256加密的实现代码与相关注意事项,需要的朋友可以参考下
    2017-08-08
  • RocketMQ Broker如何保存消息源码解析

    RocketMQ Broker如何保存消息源码解析

    这篇文章主要为大家介绍了RocketMQ源码分析Broker如何保存消息详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • java生成json数据示例

    java生成json数据示例

    这篇文章主要介绍了java生成json数据示例,需要的朋友可以参考下
    2014-04-04
  • 详解Java的四种引用方式及其区别

    详解Java的四种引用方式及其区别

    这篇文章主要介绍了Java的四种引用方式 ,主要主要包括强引用,软引用,弱引用,虚引用,稍微整理精简一下做下分享,具有一定的参考价值,需要的朋友可以参考下
    2018-12-12
  • 详解Java中ThreadLocal类型及简单用法

    详解Java中ThreadLocal类型及简单用法

    ThreadLocal实例通常是希望将状态与线程关联起来的类中的私有静态字段,下面通过例子给大家详细介绍Java中ThreadLocal类型及简单用法,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • Spring AOP 实现自定义注解的示例

    Spring AOP 实现自定义注解的示例

    这篇文章主要介绍了Spring AOP 实现自定义注解的示例,帮助大家更好的理解和学习使用spring框架,感兴趣的朋友可以了解下
    2021-03-03

最新评论