放在resource目錄下的一個文件,在啓動程序的時候會讀取文件的路徑
Object.class.getResource("/toDeleteRoleId.txt").getPath()
代碼如圖,本地idea可以正常運行,但是打包後使用python腳本 用命令執行 包FileNotFoundException,如下圖
注意到輸出的文件路徑是在jar包的下級目錄,解壓jar包後發現裏面有一個toDeleteRoleId.txt文件,如下圖,發現問題
原因:打包時把改文件打進jar包中,代碼獲取文件路徑的方式是Object.class.getResource("/toDeleteRoleId.txt").getPath()
因爲jar包中有,所以就不會再去resource中拿,就會獲取到jar包中的文件路徑,該路徑是不符合java規範的
解決方法:修改打包工具,過濾該文件,不把改文件打到jar包中,如下圖。(我一般是放到resource目錄下)
下面是我的包結構
相應的pom文件中在打包插件中過濾該文件,如下圖
上面的包的結構中的resource目錄是這樣產生的,如下圖