2011-12-15 3 views
1

Java 응용 프로그램이 여러 로케일로 현지화되었습니다. 각 로케일마다 변환이있는 특성 파일이 있습니다. 다음과 같이로드합니다 :런타임에 사용 가능한 모든 ResourceBundle을 어떻게 확인할 수 있습니까?

ResourceBundle bundle = ResourceBundle.getBundle("MessagesBundle", Locale.getDefault()); 

런타임에 사용 가능한 모든 리소스 번들을 확인하고 싶습니다. 번들은 내 응용 프로그램의 jar 파일에 있습니다.

어떻게하면됩니까?

답변

1

클래스 경로에서 "MessageBundle"로 시작하고 ".properties"로 끝나는 모든 속성 파일을 찾으려고하지 않는 이유는 무엇입니까? 그것은 더럽지 만 작동 할 것입니다.

여기의 ResourceBundle 클래스 표준 방법이 없습니다 this- Code to find files on your classpath

+0

어떻게 그 일을합니까? –

1

을 수행하는 방법에 유용한 코드입니다. (hackish solution) - Thread.currentThread().getContextClassLoader().getResource() 메쏘드 또는 this.getClass(). getResource ("/")를 사용할 수 있습니다. same title을 가진 다른 SO 스레드를보십시오.

0

당신이 PathMatchingResourcePatternResolver으로 시도 할 수 스프링을 사용하는 경우 :

ClassLoader cl = this.getClass().getClassLoader(); 
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(cl); 
Resource[] resources = resolver.getResources("classpath*:/MessagesBundle.properties") ; 
for (Resource resource: resources){ 
    logger.info(resource.getFilename()); 
} 
관련 문제