獲取代碼:
String jar_parent = new File(ResourceUtils.getURL("classpath:").getPath()).getParentFile().getParentFile().getParent();
我的springboot項目名叫springcloud-eureka-servicesupport是用idea構建的(以module構建)。
項目放在C:\Users\anxiaopei\springcloud 下。
1.windows下,使用idea直接運行項目時:
當使用idea發佈springboot項目直接運行,而不是打包爲jar運行的時候,運行上面的代碼獲取的是項目的位置:
首先找到項目運行的目錄 target:
target絕對路徑:C:\Users\anxiaopei\springcloud\springcloud-eureka-servicesupport
運行上面代碼獲得路徑:C:\Users\anxiaopei\springcloud
因此在不打爲jar包運行的時候,獲取的是項目的根路徑。
2.Linux下,打爲jar包後,java -jar 運行springboot jar包項目時:
我的Springboot項目打爲jar包後,linux系統中 jar存放的目錄:
運行上面代碼:得到的結果是:file:/usr/CouldComment
由此可見代碼運行正常
獲取這個路徑我是用來得到同路徑下的,存放於jar包之外的靜態資源,freemarker的模板資源,一些系統配置需要jar包存放路徑。
此代碼能用的留個贊,不能用的反饋一下問題。_(:з」∠)_