개발자세상/자바세상
ClassPath에 있는 파일 가져오기.
headiron
2009. 3. 18. 10:28
B3 쪽을 위한 Report Crawler를 만들면서
몇개의 파일 읽어 오는 것을 구현해야 하는데 해당 파일 정보를 properties에 넣을 려고 하니 너무 설정이 많아 지는 듯 하여 ClassPath에 있는 파일을 읽어 오는 방법을 찾다 보니 Solution이 있다.
( Spring이나 Struts 같은 데서 ClassPath에 있는 파일 읽어 오는 것을 보고 어떻게 한건가 했는데 이거 였구나 하는 생각이.^^ )
1.String filePath = Thread.currentThread().getContextClassLoader().getResource("/script/xxx.sh").getFile();
2.String filePath = getClass().getClassLoader().getResource("/script/xxx.sh").getFile();
3.String filePath = getClass().getResource("/script/xxx.sh").getFile();
처음에는 3번으로 개발했는데 Window / linux에서는 잘 되던게 Mac 에 올렸더니 NullPointer Exception이 발생했다.
결국 정팀장님이 1번 형태로 바꾸셨는데 송과장님 Mac에서는 또 1,3번 모두 다 잘 된다...
Internet을 Survey해보니 2,3번 형태를 비교해서 2번은 되는데 3번은 NullPointerException 나오는 경우에 대한 Article도 찾았다.
결국 1 번 혹은 2번 형태로 작성하는 것이 제일 안전한 방법으로 보인다.
몇개의 파일 읽어 오는 것을 구현해야 하는데 해당 파일 정보를 properties에 넣을 려고 하니 너무 설정이 많아 지는 듯 하여 ClassPath에 있는 파일을 읽어 오는 방법을 찾다 보니 Solution이 있다.
( Spring이나 Struts 같은 데서 ClassPath에 있는 파일 읽어 오는 것을 보고 어떻게 한건가 했는데 이거 였구나 하는 생각이.^^ )
1.String filePath = Thread.currentThread().getContextClassLoader().getResource("/script/xxx.sh").getFile();
2.String filePath = getClass().getClassLoader().getResource("/script/xxx.sh").getFile();
3.String filePath = getClass().getResource("/script/xxx.sh").getFile();
처음에는 3번으로 개발했는데 Window / linux에서는 잘 되던게 Mac 에 올렸더니 NullPointer Exception이 발생했다.
결국 정팀장님이 1번 형태로 바꾸셨는데 송과장님 Mac에서는 또 1,3번 모두 다 잘 된다...
Internet을 Survey해보니 2,3번 형태를 비교해서 2번은 되는데 3번은 NullPointerException 나오는 경우에 대한 Article도 찾았다.
결국 1 번 혹은 2번 형태로 작성하는 것이 제일 안전한 방법으로 보인다.