Java項(xiàng)目中classpath類路徑是什么
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)簽的錯誤使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01MyBatis Mapper XML中比較操作符轉(zhuǎn)義問題解決
在使用MyBatis編寫Mapper XML時(shí),有時(shí)會遇到比較操作符需要進(jìn)行轉(zhuǎn)義的情況,本文主要介紹了MyBatis Mapper XML中比較操作符轉(zhuǎn)義問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01記錄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.02024-10-10spring boot教程之產(chǎn)生的背景及其優(yōu)勢
這篇文章主要介紹了spring boot教程之產(chǎn)生的背景及其優(yōu)勢的相關(guān)資料,需要的朋友可以參考下2022-08-08Java學(xué)習(xí)基礎(chǔ)之安裝JDK/配置JDK環(huán)境&IEDA工具安裝
這篇文章主要介紹了Java學(xué)習(xí)基礎(chǔ)系列文章的第一篇,主要內(nèi)容是安裝JDK/配置JDK環(huán)境&IEDA工具安裝的相關(guān)資料,需要的朋友可以參考下2020-02-02