springboot 프로젝트 를 jar 패키지 로 만 든 후 static 에서 정적 자원 파일 을 가 져 올 수 없 는 문제 분석

springboot 백 엔 드 항목 이 어떤 기능 을 할 때 루트 디 렉 터 리 의.doc 파일 을 읽 어야 합 니 다.구체 적 인 항목 의 경 로 는 다음 과 같 습 니 다.
在这里插入图片描述
시작 은 절대 경 로 를 통 해 문 서 를 읽 는 것 입 니 다.로 컬 에 서 는 문제 가 없습니다.
그러나 프로젝트 를 jar 패키지 로 설정 하여 테스트 환경 에 배치 한 결과 어떻게 든 읽 을 수 없 음 을 발견 하고 로 컬 에서 jar 패 키 지 를 실행 하 는 데 동일 한 상황 이 발생 합 니 다.
캡 처 이상:java.io.FileNotFound Exception
[org.apache.ibatis.session.defaults.DefaultSqlSession@55b40849]
java.io.FileNotFoundException: class path resource [static/****.doc] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/D:/**/***/target/****-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static/****.doc
원인:
이 때 실행 중인 자바 프로그램 은 jar 패키지 의 파일 을 읽 고 있 습 니 다.아래 방식 을 직접 사용 하면 안 됩 니 다.

         :
//          src\main\resources\static\***.doc
String path = this.getClass().getClassLoader().getResource("").getPath()+"/static/***.doc";
File file = new File(path);
자바 에 서 는 jar 패키지 로 만 든 후 실행 후 이 jar 패키지 안의 파일 을 읽 고 쓰기 방법 을 바 꿔 야 합 니 다.

       getResourceAsStream  , jar          
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/***.doc");
됐다.
총결산
spring boot 프로젝트 를 jar 패키지 로 만 든 후 static 에서 정적 자원 파일 을 가 져 올 수 없 는 문제 분석 에 관 한 글 은 여기까지 입 니 다.더 많은 spring boot 를 jar 패키지 로 만 들 면 정적 자원 파일 내용 을 가 져 올 수 없습니다.이전 글 을 검색 하거나 다음 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기