본문 바로가기
IT/Java

자바 현재 경로

by yjacket 2010. 6. 25.

자바 프로그램을 작성중 웹으로부터 전달받은 임시파일을 데몬이 읽어 처리 하도록 해야 할 일이 생겼다. 임시파일의 적당한 위치를 찾기 위해 자바 어플리케이션상에서의 현재 경로가 어떻게 되는지 궁금해 다음 코드를 짜서 확인해보았다.

   1: // Java Application
   2: // d:\workspace\daemon\src\test.java
   3: File file = new File(“.”);
   4: System.out.println(file.getCanonicalPath()); // d:\workspace\daemon\
   5:  
   6: // Dynamic Web Project
   7: // d:\workspace\web\webContent\test.jsp
   8: // d:\apache-tomcat-6.0.14
   9: <%
  10: java.io.File file = new java.io.File(".");
  11: %>
  12: <%=file.getCanonicalPath()%> // d:\apache-tomcat-6.0.14\bin\
  13:  
  14:  
  15:  

요약하면,

자바 어플리케이션은 프로젝트 홈이 현재 경로가 된다.
다이나믹 웹 프로젝트는 톰캣 실행파일 경로가 현재 경로가 된다.(단, 이건 직접 아파치 톰캣을 실행했을떄 얘기고, 이클립스에서 실행 했을 경우는 이클립스 홈이 현재 경로가 된다.)

But, 위 실험 결과와는 상관없이 업로드 경로는 System.getProperty(“java.io.tmpdir”) 로 해 볼 예정. 근데, 윈도에서는 System.getProperty(“java.io.tmpdir”) 뒤에 \ 가 붙는데, 리눅스에선 안붙어서 검사하는 코드도 추가해야되겠다…쩝… 크로스플랫폼 지원하기가 쉽지 않네.