亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我有一個關于如何運行 springboot 項目的問題

我有一個關于如何運行 springboot 項目的問題

開滿天機 2021-12-01 16:03:29
在我的 Web 應用程序中,我想讀取src/main/resource/static/doc 中的 excel 文件,所以我使用String basePath = ClassLoader.getSystemResource("").getPath();獲取資源路徑并讀取它。它在我的 IDE IDEA 中工作,我只是運行它并可以獲得 excel。然而,當我java -jar lab.jar用來運行一個spring boot項目時,它拋出了一個NullpointerException,但是當我使用String basePath = ClassLoader.getSystemResource("application.properties").getPath();打印出來,看到/Users/zhangzhikai/lab-center/target/lab.jar!/BOOT-INF/classes!/application.properties。為什么我不能從罐子里得到 excel?這是我的文件目錄:
查看完整描述

2 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

File在 Java 中使用 a 時,它必須指向操作系統文件系統上的物理文件。運行未打包的應用程序時就是這種情況,但是在運行時jar它不是物理文件,因此將無法工作(導致錯誤或空指針異常)


使用ResourceSpring的類之一來訪問資源。在這種情況下,因為它來自您想要使用的類路徑ClassPathResource。然后直接使用InputStream讀取文件。


Resource input = new ClassPathResource(“static/doc/modal/model.xls”);

InputStream in = input.getInputStream();

// Use InputStream to read file

這將作為打包和未打包的應用程序工作。不要使用,getFile因為這在打包時不起作用。


查看完整回答
反對 回復 2021-12-01
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

  File xlsfile = new ClassPathResource("/doc/modal/model.xls").getFile();

     //also check the path

    //String currentPath = xlsfile .getAbsolutePath(); 

    File newXls=new File("classpath:static/doc/temp");

    newXls=xlsfile;

在評論中討論希望這可以幫助你。


查看完整回答
反對 回復 2021-12-01
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號