2012-08-24 3 views
0

안녕하세요, 속성 파일을로드하기 위해 ResourceBundle을 만들고 있습니다. 내 파일 구조는 다음과 같습니다.Resource bundle의 java.util.MissingResourceException

| --- 홈페이지

| 
    ----ResourceBundleLoad.java 

| 정상에서 --Resource

| 
    --- resourcebundle.properties 

저는 메인 클래스와 같은 패키지의 속성 파일이 그것의 모든 속성 파일 값을 검색하는 수단을 넣으면. 두 파일을 분리하면 작동하지 않습니다. java.util.MissingResourceException 예외가 발생합니다.

내 코드

private static final String BUNDLE_NAME = "ExternalizedLogMessages"; 
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); 

가 어떻게 클래스 로더를 사용하여이를이 문제

답변

2

를 해결하는 날을 제안하십시오입니다. 출처는

private static URLClassLoader resourceLoader= null; 

/** 
* Initialize class loader. 
*/ 
static{ 
    ClassLoader currentThreadClassLoader 
    = Thread.currentThread().getContextClassLoader(); 

    //assuming that current path is the project directory 
    try { 
     resourceLoader 
     = new URLClassLoader(new URL[]{new File(".").toURI().toURL()}, 
           currentThreadClassLoader); 
    } catch (MalformedURLException e) { 
     logger.error(e); 
    } 
} 

/** 
* Properties bundle name. 
*/ 
private static final String BUNDLE_NAME = "resource.ExternalizedLogMessages"; //$NON-NLS-1$ 

/** 
* Resource bundle object. 
*/ 
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle 
     .getBundle(BUNDLE_NAME,Locale.US,resourceLoader); 
입니다.