解決springboot項目打成jar包后運行時碰到的小坑
項目打成jar包后運行時的坑
問題
我的springboot項目中有用的一段代碼是往static目錄下添加文件獲取路徑的代碼如下
String path=ResourceUtils.getURL("classpath:static/task").getPath().replace("%20"," ");部署阿里云的服務器上,通過運行jar包的形式運行的時候,發(fā)現(xiàn)運行到這部分代碼的時候,獲取到staic/task路徑后通過路徑創(chuàng)建文件的時候會出現(xiàn)問題
- windows系統(tǒng)會報異常
- linux系統(tǒng)會在跟jar同級目錄下創(chuàng)建獲取的目錄及文件夾)
顯然這些都不是我們想要的
解決辦法
保持原來的項目結構,將jar包解壓后通過運行springboot啟動類來啟動項目
解壓jar命令:
jar xvf 文件名.jar 解壓到當前目錄
運行class命令可參考
nohup java -cp .:/opt/homework/BOOT-INF/lib/* lemon.homework.HomeworkApplication >/opt/homework/temp.txt
后臺運行class且加入依賴的jar包并將日志文件輸出至temp.txt:
打jar包后運行提示找不到界面
用的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運行時,提示找不到login模版。

去掉視圖名稱中的"/"就好了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
JavaSE的三大接口:Comparator,Comparable和Cloneable詳解
這篇文章主要介紹了詳解JavaSE中Comparator,Comparable和Cloneable接口的區(qū)別的相關資料,希望通過本文大家能徹底掌握這部分內容,需要的朋友可以參考下2021-10-10
Java數(shù)據(jù)庫連接_jdbc-odbc橋連接方式(詳解)
下面小編就為大家?guī)硪黄狫ava數(shù)據(jù)庫連接_jdbc-odbc橋連接方式(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

