lovestory
372
2019-04-15 16:47:14
2
116

JAVA SPRING에서 Resource 폴더안에있는 저장 패스를 가져올려고 합니다.


MAVEN을 사용하고 있습니다.


일단 소스를 보시면



URL in = getClass().getResource("/test.rds");
String pathMod = in.getPath();
File file = new File(pathMod);
String path = file.getAbsolutePath(); 
System.out.println(path);  // D:\\\\{저장소PATH}\\\\target\\\\classes\\\\model\\\\test.rds


이렇게 해서 test.res 저장 패스를 가져오긴 합니다. 하지만 문제는?

왜 target 폴더안에 있는 파일 경로로 가져오는지 ㅠ,ㅠ


제가 원하는 return값!!! : D:\\\{저장소PATH}\\\\src\\\\main\\\\resources\\\\model\\\\test.rds"


이렇게 가져오는 방법이 없을까요? ㅠ,ㅠ



0
0
  • 답변 2

  • eotpan
    1k
    2019-04-15 17:01:12
    URL in = getClass().getResource("/test.rds");
    이때 상대 경로로 가져오셔서 그래요.. 절대 경로로 바꾸세요.
    0
  • yulisys
    11
    2019-04-15 17:13:46

    /target 밑에서 파일을 불러오는 이유는 maven을 사용하기 때문입니다.

    maven 을 사용하신다면, /src 밑에 작성하신 모든 파일들은 컴파일이 되면서 /target 밑에 생성이 됩니다.

    이후, 프로그램을 실행하게 되면, /target 밑에 생성된 클래스 파일들(*.class)과 resource 파일들(*.properties, *.xml 기타 등등)을 가지고 구동이 되는데, 쉽게 얘기하면 프로그램 구동 시작 경로가 /target 입니다.


    따라서, 프로그램으로서는 /target 밑에서 읽어오는게 정상적인 경로입니다.


    혹시, /src 에서 저장한 내용이 /target에서는 반영되지 않는다면, mvn compile 로 컴파일하지 않았기 때문이니 mvn compile 실행 후 프로그램 실행을 해 보면 변경된 내용이 반영될 겁니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.