Springboot 프로젝트는 항아리 패키지 시작 후 정적 리소스 FileNotFoundException이를 통해 프로젝트 루트 경로를 읽을 수 없습니다

  프로젝트 개발 과정에서 프로젝트의 루트 경로 사진을 저장, 생산 테스트에 두 개의 차원이 차원 코드의 로고와 사진의 2 차원 코드는 윈도우 환경에서 제대로 생성 할 수 있습니다 때 호출 코드 만 배포를 생성하는 이차원 코드 발생 오류 환경 후 FileNotFoundException이     / BOOT-INF / 클래스 / : 패키지 JAR 자원 경로 ** / logo.png

  다음과 같은 파일 읽기 코드 이차원 코드 중에 생성 된 파일 IO 스트림의 사용은 다음과 같습니다 

   자원 새 새 = ClassPathResource가 자원 (imgpath) 
   파일 파일 resource.getFile = ();
   {IF (File.Exists ()!)
   System.err.println을 ( ""+ imgpath + "파일이"존재하지 않습니다!)
   돌아;
   }
  이미지 SRC = ImageIO.read (파일)
때 파일이 항아리 사용할 때 파일을 읽어 다른 인터페이스 전화 : // *** / 로고 파일 : // 절대 경로에 따라 서버 자원을 읽어 파일 : 항아리 .PNG
하지만 리눅스 서버에서이 시간 logo.png 파일의 절대 경로를 사용하면 파일 오류를 찾을 수 없습니다, 존재하지 않는

====================== ================================================== =========================

: 다음의 InputStream 스트림 파일을 수정할 수는 코드를 읽고
  
  , 새로운 ClassPathResource가 새로운 자원 = ClassPathResource가 (imgpath)

  InputStream 인 = 자원 InputStream에서 .getInputStream ();
  이미지 SRC = ImageIO.read (inputStream에),
앞의 파일 경로에 의해 제거 될 스트림으로부터 판독 할 때 '/', 저급 상대 경로 래스로부터 차례로 다음 스트림 처리로 옮기고 찾기 시작

이런면 구체적으로는 기본 구현에 관한
ClassPathResource가, 클래스, 여러 JDK 자신의 클래스 객체, 나는 당신에게 제한된 수준의 교차 갱스터 가리키는 봐 ... 담당자 전자 메일 [email protected]

추천

출처www.cnblogs.com/mbblog/p/12503086.html