2014-07-08 4 views
1

저는 RersourceBundles에 대해 "Learning Java"예제를 사용하고 있습니다.ResourceBundle 예제가 작동하지 않습니다.

내가 Windows 7 및 넷빈즈

샘플의 코드가 사용하고 있습니다 : 나는 코드를 실행하면

import java.util.*; 
public class Hello { 
    public static void main(String[] args) { 
     ResourceBundle bun; 
     bun = ResourceBundle.getBundle("Message", Locale.ITALY); 
     System.out.println(bun.getString("HelloMessage")); 
     bun = ResourceBundle.getBundle("Message", Locale.US); 
     System.out.println(bun.getString("HelloMessage")); 
    } 
} 

내가 얻을 : 스레드에서

예외 "주를" java.util.MissingResourceException : 기본 이름 메시지, 로케일 it_IT에 대한 번들을 찾지 못함 java.util.ResourceBundle.throwMissingResourceException (ResourceBundle.java:1499)(ResourceBundle.java:795) at learningjava4.Hello.main (Hello.java:14) Java 결과 : 1 (JavaBean 결과 : 1) 내가 쓴 나는 여전히 같은 오류가 발생한

import java.util.*; 
public class Message_it_IT extends ListResourceBundle { 
    public Object[][] getContents() { 
     return contents; 
    } 
    static final Object[][] contents = { 
     {"HelloMessage", "Buon giorno, world!"}, 
     {"OtherMessage", "Ciao."}, 
    }; 
} 

저장하더라도

. Message_it_IT 파일이 다른 하나의 같은 디렉토리에 저장되었습니다. 무엇이 잘못 되었습니까?

감사

+0

리소스 번들 파일의 이름과 리소스 배치 위치는 무엇입니까? – Abhilash

+0

Message_it_IT 다른 클래스의 동일한 디렉토리에 저장됩니다. 고마워. – fedeteka

답변

3

스택 추적 클래스가 패키지 learningjava4에 있음을 보여줍니다. 그리고 여러분은 번들 클래스/파일들이 같은 패키지에 있다는 것을 알려줍니다. 따라서 번들 기본 이름은 Message이 아니라 learningjava4.Message입니다.

+0

빠른 답변을 제공해 주셔서 감사합니다. 가장 중요한 점은 이해하지만 솔루션을 구현하는 방법은 아닙니다. 텍스트 내에서 "message"를 "learningjava4.Message"로 바꾸려면 어디에서 따옴표를 사용해야합니까? – fedeteka

+0

지금 해결되었습니다! 고마워. 해결책은 "bun = ResourceBundle.getBundle ("learningjava4.Message ", Locale.ITALY);" – fedeteka

관련 문제