欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java項(xiàng)目中classpath類路徑是什么

 更新時(shí)間:2023年02月23日 10:59:56   作者:ThinkStu  
classpath指的是類路徑,也就是編譯之后的target文件夾下的WEB-INF/class文件夾,下面這篇文章主要給大家介紹了關(guān)于Java項(xiàng)目中classpath類路徑是什么的相關(guān)資料,需要的朋友可以參考下

Spring Boot

一、簡介

classpath類路徑在 Spring Boot 中既指程序在打包前的/java/目錄加上/resource目錄,也指程序在打包后生成的/classes/目錄。兩者實(shí)際上指的是同一個目錄,里面包含的文件內(nèi)容一模一樣。

二、獲取classpath路徑

以下兩種方式均可,但是并不能用于生產(chǎn)環(huán)境,因?yàn)楫?dāng)我們把程序打成jar包時(shí),由于jar包本質(zhì)是壓縮文件,無法被直接打包,所以生成的路徑中會含有感嘆號!導(dǎo)致路徑定位錯誤,例如:jar!/BOOT-INF/classes!/application.yml (No such file or directory)

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

// 方式二:
String path2 = ResourceUtils.getURL("classpath:").getPath();

此時(shí),如果我們想要讀取jar包內(nèi)的文件,可以采取第 3 種方式不讀取路徑、直接讀取文件流:

// 方式 三
InputStream input = ClassUtils
        .getDefaultClassLoader()
        .getResourceAsStream("application.yml");
Reader reader = new InputStreamReader(input, "UTF-8");

三、獲取項(xiàng)目路徑

上面介紹了如何獲取classpath路徑之后,其實(shí)有時(shí)候我們會發(fā)現(xiàn)自己只想獲取當(dāng)前程序所在路徑或jar包所在路徑,那么此時(shí)又應(yīng)該如何獲取呢?

// 方式一:
File file = new File(".");
File path1 = file.getAbsoluteFile();

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

兩者方式并無優(yōu)劣之分,具體使用哪種取決于你的愛好~

classpath 和 classpath* 區(qū)別: 

classpath:只會到你的class路徑中查找找文件; 

classpath*:不僅包含class路徑,還包括jar文件中(class路徑)進(jìn)行查找. 

總結(jié)

到此這篇關(guān)于Java項(xiàng)目中classpath類路徑是什么的文章就介紹到這了,更多相關(guān)classpath類路徑是什么內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis?resultMap?id標(biāo)簽的錯誤使用方式

    MyBatis?resultMap?id標(biāo)簽的錯誤使用方式

    這篇文章主要介紹了MyBatis?resultMap?id標(biāo)簽的錯誤使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • MyBatis Mapper XML中比較操作符轉(zhuǎn)義問題解決

    MyBatis Mapper XML中比較操作符轉(zhuǎn)義問題解決

    在使用MyBatis編寫Mapper XML時(shí),有時(shí)會遇到比較操作符需要進(jìn)行轉(zhuǎn)義的情況,本文主要介紹了MyBatis Mapper XML中比較操作符轉(zhuǎn)義問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • 詳解Java發(fā)送HTTP請求

    詳解Java發(fā)送HTTP請求

    這篇文章主要介紹了Java發(fā)送HTTP請求,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java必會的Synchronized底層原理剖析

    Java必會的Synchronized底層原理剖析

    synchronized作為Java程序員最常用同步工具,很多人卻對它的用法和實(shí)現(xiàn)原理一知半解,以至于還有不少人認(rèn)為synchronized是重量級鎖,性能較差,盡量少用。但不可否認(rèn)的是synchronized依然是并發(fā)首選工具,本文就來詳細(xì)講講
    2022-10-10
  • Java實(shí)現(xiàn)鏈棧的示例代碼

    Java實(shí)現(xiàn)鏈棧的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用鏈?zhǔn)酱鎯Y(jié)構(gòu)來實(shí)現(xiàn)棧,也就是鏈棧的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • 記錄jdk21連接SQLServer因?yàn)門LS協(xié)議報(bào)錯問題

    記錄jdk21連接SQLServer因?yàn)門LS協(xié)議報(bào)錯問題

    在使用Druid連接池連接SQL Server時(shí),可能會遇到因TLS版本不匹配導(dǎo)致的連接失敗問題,具體表現(xiàn)為客戶端使用TLS1.3或TLS1.2,而SQL Server僅支持TLS1.0,導(dǎo)致無法建立安全連接,解決方法是修改JDK的安全配置,啟用TLS1.0
    2024-10-10
  • 通過Java添加Word文本框過程詳解

    通過Java添加Word文本框過程詳解

    這篇文章主要介紹了通過Java添加Word文本框過程詳解,在Word中,文本框是指一種可移動、可調(diào)節(jié)大小的文字或圖形容器。我們可以向文本框中添加文字、圖片、表格等對象,下面,將通過Java編程來實(shí)現(xiàn)添加以上對象到Word文本框,需要的朋友可以參考下
    2019-07-07
  • spring boot教程之產(chǎn)生的背景及其優(yōu)勢

    spring boot教程之產(chǎn)生的背景及其優(yōu)勢

    這篇文章主要介紹了spring boot教程之產(chǎn)生的背景及其優(yōu)勢的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Java學(xué)習(xí)基礎(chǔ)之安裝JDK/配置JDK環(huán)境&IEDA工具安裝

    Java學(xué)習(xí)基礎(chǔ)之安裝JDK/配置JDK環(huán)境&IEDA工具安裝

    這篇文章主要介紹了Java學(xué)習(xí)基礎(chǔ)系列文章的第一篇,主要內(nèi)容是安裝JDK/配置JDK環(huán)境&IEDA工具安裝的相關(guān)資料,需要的朋友可以參考下
    2020-02-02
  • JAVA通過XPath解析XML性能比較詳解

    JAVA通過XPath解析XML性能比較詳解

    本篇文章主要介紹了JAVA通過XPath解析XML性能比較詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論