解決springboot項(xiàng)目打成jar包后運(yùn)行時(shí)碰到的小坑
項(xiàng)目打成jar包后運(yùn)行時(shí)的坑
問題
我的springboot項(xiàng)目中有用的一段代碼是往static目錄下添加文件獲取路徑的代碼如下
String path=ResourceUtils.getURL("classpath:static/task").getPath().replace("%20"," ");
部署阿里云的服務(wù)器上,通過運(yùn)行jar包的形式運(yùn)行的時(shí)候,發(fā)現(xiàn)運(yùn)行到這部分代碼的時(shí)候,獲取到staic/task路徑后通過路徑創(chuàng)建文件的時(shí)候會出現(xiàn)問題
- windows系統(tǒng)會報(bào)異常
- linux系統(tǒng)會在跟jar同級目錄下創(chuàng)建獲取的目錄及文件夾)
顯然這些都不是我們想要的
解決辦法
保持原來的項(xiàng)目結(jié)構(gòu),將jar包解壓后通過運(yùn)行springboot啟動類來啟動項(xiàng)目
解壓jar命令:
jar xvf 文件名.jar 解壓到當(dāng)前目錄
運(yùn)行class命令可參考
nohup java -cp .:/opt/homework/BOOT-INF/lib/* lemon.homework.HomeworkApplication >/opt/homework/temp.txt
后臺運(yùn)行class且加入依賴的jar包并將日志文件輸出至temp.txt:
打jar包后運(yùn)行提示找不到界面
用的thymeleaf模版,把html文件放在resources的templates目錄下面。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
控制層代碼為:
@RequestMapping("login") public String login(String code, HttpServletResponse response, HashMap<String, Object> map) { logger.debug("code:" + code); return "/login"; }
在eclipse訪問是沒有問題的,可以正常訪問到界面。
但是打jar包后,java -jar運(yùn)行時(shí),提示找不到login模版。
去掉視圖名稱中的"/"就好了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaSE的三大接口:Comparator,Comparable和Cloneable詳解
這篇文章主要介紹了詳解JavaSE中Comparator,Comparable和Cloneable接口的區(qū)別的相關(guān)資料,希望通過本文大家能徹底掌握這部分內(nèi)容,需要的朋友可以參考下2021-10-10Java ByteBuffer網(wǎng)絡(luò)編程用法實(shí)例解析
這篇文章主要介紹了Java ByteBuffer網(wǎng)絡(luò)編程用法實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10Java IO創(chuàng)建目錄和文件實(shí)例代碼
本篇文章給大家分享了Java IO創(chuàng)建目錄和文件的實(shí)例代碼,過程很簡單,大家可以測試參考下。2018-02-02Java數(shù)據(jù)庫連接_jdbc-odbc橋連接方式(詳解)
下面小編就為大家?guī)硪黄狫ava數(shù)據(jù)庫連接_jdbc-odbc橋連接方式(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08spring aop實(shí)現(xiàn)用戶權(quán)限管理的示例
本篇文章主要介紹了spring aop實(shí)現(xiàn)用戶權(quán)限管理的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12