사용자 도구

사이트 도구


java:classpathresource

Java Classpath Resource

Pure Java

ClassLoader.getResourceAsStream ("some/pkg/resource.properties"); // "/"가 없어도 절대경로
Class.getResourceAsStream ("/some/pkg/resource.properties"); // "/"가 없으면 상대경로
ResourceBundle.getBundle ("some.pkg.resource");
 
// 파일로 확보. jar로 묶여있을 경우 작동 안 할 수 있음. 주의 필요.
File file = new File(getClass().getClassLoader().getResource("database.properties").getFile());

SpringFramework Resource 사용

Resource targetFileResource = new ClassPathResource("/package/to/myfile.txt");
File targetFile = targetFileResource.getFile();
 
// 혹은
File employeesFile = ResourceUtils.getFile("classpath:data/employees.dat");
  • classpath 상의 리소스에 대해서 getFile() 은 매우 주의해야한다. jar 안에 묶여 있을 경우 getFile()이 동작하지 않기 때문이다.
  • 따라서 getFile() 은 Test 코드 등에서만 사용하고, 실제 운영에서는 InputStream 으로만 읽도록 한다.

참고

java/classpathresource.txt · 마지막으로 수정됨: 2019/11/22 13:32 저자 kwon37xi