最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何獲取springboot打成jar后的classpath

 更新時(shí)間:2023年07月21日 15:16:30   作者:琴瑟裹腹  
這篇文章主要介紹了如何獲取springboot打成jar后的classpath問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

獲取springboot打成jar后的classpath

項(xiàng)目需要另一個(gè)子項(xiàng)目Utils的一個(gè)util工具類,在A項(xiàng)目的maven中加入了該子項(xiàng)目

<dependency>
?? ??? ??? ?<groupId>com.supconit.data.algorithm.platform</groupId>
?? ??? ??? ?<artifactId>data_algorithm_util</artifactId>
?? ??? ??? ?<version>1.1.00.190408-SNAPSHOT</version>
</dependency>

但是該工具類的執(zhí)行依賴一個(gè)conf文件,把子項(xiàng)目Utils打成jar包后,發(fā)布到linux平臺(tái)上,發(fā)現(xiàn)無法讀取該配置文件

報(bào)錯(cuò)如下:

java.io.FileNotFoundException: class path resource [fdfs_client.conf] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/data_algorithm/data_algorithm_executor-1.1.00.190408-SNAPSHOT.jar!/BOOT-INF/lib/data_algorithm_util-1.1.00.190408-SNAPSHOT.jar!/fdfs_client.conf

修改之前的代碼

?String path ?= new ClassPathResource("fdfs_client.conf").getFile().getAbsolutePath();
?ClientGlobal.init(path);

修改之后的代碼

?ClassPathResource classPathResource = new ClassPathResource("fdfs_client.conf");
? ? ? ? ? ? //創(chuàng)建臨時(shí)文件,將fdfs_client.conf的值賦值到臨時(shí)文件中,創(chuàng)建這個(gè)臨時(shí)文件的原因是springboot打成jar后無法獲取classpath下文件
? ? ? ? ? ? String tempPath =System.getProperty("java.io.tmpdir") + System.currentTimeMillis()+".conf";
? ? ? ? ? ? File f = new File(tempPath);
? ? ? ? ? ? IOUtils.copy(classPathResource.getInputStream(),new FileOutputStream(f));
? ? ? ? ? ? ClientGlobal.init(f.getAbsolutePath());

發(fā)布之后,問題解決,原因是因?yàn)榇虬骃pring試圖訪問文件系統(tǒng)路徑,但無法訪問JAR中的路徑,因此必須使用resource.getInputStream()。

springboot打成jar后獲取classpath下文件異常解決

寫了一個(gè)工具類,要讀取classpath下的文件,使用

Resource resource = new ClassPathResource(filePath);
File file = resource.getFile();

在本地測試,沒發(fā)現(xiàn)問題,但是將項(xiàng)目打包成jar包后運(yùn)行,發(fā)現(xiàn)報(bào)錯(cuò)

Caused by: java.io.FileNotFoundException: class path resource [test.txt] cannot be resolved to absolute file path because it does not reside in the file system: j

原因

打包后Spring試圖訪問文件系統(tǒng)路徑,但無法訪問JAR中的路徑。

解決

Resource resource = new ClassPathResource(filePath);
InputStream inputStream = resource.getInputStream();

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springBoot動(dòng)態(tài)加載jar及如何將類注冊(cè)到IOC

    springBoot動(dòng)態(tài)加載jar及如何將類注冊(cè)到IOC

    在SpringBoot項(xiàng)目中動(dòng)態(tài)加載jar文件并將其類注冊(cè)到IOC容器是一種高級(jí)應(yīng)用方式,,這種方法為SpringBoot項(xiàng)目提供了更靈活的擴(kuò)展能力,使得項(xiàng)目可以在不修改原有代碼的基礎(chǔ)上增加新的功能模塊,感興趣的朋友一起看看吧
    2024-11-11
  • Java?Cloneable接口的深拷貝與淺拷貝詳解

    Java?Cloneable接口的深拷貝與淺拷貝詳解

    這篇文章主要為大家詳細(xì)介紹了Java?Cloneable接口的深拷貝與淺拷貝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 面試初級(jí)Java開發(fā)問到Arrays

    面試初級(jí)Java開發(fā)問到Arrays

    這篇文章主要介紹了Java Arrays工具類用法,結(jié)合實(shí)例形式分析了java Arrays工具類針對(duì)數(shù)組元素修改、復(fù)制、排序等操作使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2021-07-07
  • SpringBoot實(shí)現(xiàn)權(quán)限驗(yàn)證的示例步驟

    SpringBoot實(shí)現(xiàn)權(quán)限驗(yàn)證的示例步驟

    權(quán)限驗(yàn)證是一種用于控制對(duì)系統(tǒng)資源和操作的訪問的機(jī)制。它允許開發(fā)人員定義誰可以執(zhí)行特定操作或訪問特定資源,并確保只有經(jīng)過授權(quán)的用戶才能執(zhí)行這些操作,這篇文章主要介紹了SpringBoot實(shí)現(xiàn)權(quán)限驗(yàn)證,需要的朋友可以參考下
    2023-08-08
  • spring boot項(xiàng)目打包成war在tomcat運(yùn)行的全步驟

    spring boot項(xiàng)目打包成war在tomcat運(yùn)行的全步驟

    這篇文章主要給大家介紹了關(guān)于spring boot項(xiàng)目打包成war在tomcat運(yùn)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java實(shí)現(xiàn)一個(gè)小說采集程序的簡單實(shí)例

    Java實(shí)現(xiàn)一個(gè)小說采集程序的簡單實(shí)例

    下面小編就為大家?guī)硪黄狫ava實(shí)現(xiàn)一個(gè)小說采集程序的簡單實(shí)例。小編覺得挺不錯(cuò)的, 現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • Java中對(duì)象都是分配在堆上嗎?你錯(cuò)了!

    Java中對(duì)象都是分配在堆上嗎?你錯(cuò)了!

    這篇文章主要介紹了Java中對(duì)象都是分配在堆上嗎?你錯(cuò)了!文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • Java如何從List中刪除元素的正確用法舉例

    Java如何從List中刪除元素的正確用法舉例

    這篇文章主要給大家介紹了關(guān)于Java如何從List中刪除元素的正確用法, 列表List是Java中的一種數(shù)據(jù)結(jié)構(gòu),存放按照添加順序的元素,是個(gè)有序的集合,需要的朋友可以參考下
    2023-07-07
  • springboot集成druid,多數(shù)據(jù)源可視化,p6spy問題

    springboot集成druid,多數(shù)據(jù)源可視化,p6spy問題

    這篇文章主要介紹了springboot集成druid,多數(shù)據(jù)源可視化,p6spy問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java Shutdown Hook場景使用及源碼分析

    Java Shutdown Hook場景使用及源碼分析

    shutdown hook 就是一個(gè)簡單的已初始化但是未啟動(dòng)的線程,本文詳細(xì)的介紹了Java Shutdown Hook場景使用及源碼分析,感興趣的朋友可以參考一下
    2021-06-06

最新評(píng)論

牟定县| 武鸣县| 新宾| 深州市| 阳原县| 巩留县| 田东县| 炎陵县| 镇江市| 南部县| 泊头市| 双峰县| 阜平县| 望江县| 广元市| 大兴区| 盱眙县| 璧山县| 布尔津县| 灵台县| 石阡县| 隆德县| 正蓝旗| 永定县| 五指山市| 勃利县| 临朐县| 岑溪市| 察隅县| 西安市| 山阳县| 靖远县| 城步| 德令哈市| 临汾市| 乌拉特中旗| 高台县| 定结县| 清远市| 奎屯市| 威远县|