SpringBoot jarサービスまたはwarサービスを打ってプロジェクトパスを取得

4731 ワード

直接コード:
/**
 *       :  jar  war    
 * @return
 */
public String getProjectRootPath(){
    //       (  war   jar  )
    String rootPath = this.getClass().getResource("/").getPath();
    String[] splits = rootPath.split("/");
    int breakI = 0;
    boolean isJarService = false;//        jar   
    for (int i = 0; i < splits.length; i++) {
        if (splits[i].contains(".jar")){
            breakI = i;
            isJarService = true;
            break;
        }
    }
    String finalRootPath = "";
    if (isJarService){
        //   jar  ,        file:XXX/XXX  ,             ,i 1    
        for (int i = 1; i < breakI; i++) {
            finalRootPath += splits[i] + "/";
        }
    } else {
        finalRootPath = rootPath;
    }
    return finalRootPath;
}