2012-01-12 3 views
1
public class SupplierCalculatorApplet extends JApplet{ 
... 
public void init(){ 
    loadProperties(); 
    ... 
} 

... 

private void loadProperties() { 
    language = "en-us";//getParameter("Language"); 
    prop = new Properties(); 
      try { 
       URL urlToProps = this.getClass().getResource("config/" + language + ".properties"); 
       prop.load(urlToProps.openStream());//Exception Caught Here 
      } catch (IOException e) { 
      } 
} 

예외가 위에 표시된 행에 있습니다. 언어가 유효한 속성 파일인지 여부에 관계없이 같은 줄에서 동일한 예외가 발생합니다.등록 정보 파일로드시 Java NullPointerException

+1

코드와 예외를 게시하시기 바랍니다. 내 생각 엔 속성 파일을 전혀 찾지 못한다는 것입니다. ClassPath 또는 파일 시스템을 통해로드 중입니까? – JustinKSU

+0

코드 (일부 속성에서 읽을 언어 기반 이름)를 살펴보면 속성 – Robin

+1

대신 ResourceBundle 인스턴스를 사용하도록 전환하는 것을 고려할 수 있습니다. 아이디어는 jar 파일 내부에서 특성 파일을로드 할 수 있다는 것입니다. 애플릿의 레이블을 지역화하기 위해 특성 파일을 사용하고 있습니다. – unmuse

답변

2

변경에 :

prop.load(this.getClass().getResourceAsStream("/config/" + language + ".properties")); 
4

당신은 우리가 작업 할 많이 부여하지 않은,하지만 자원이 발견되지 않는 경우 내 생각은 Class#getResource 반환 null 때문에, urlToPropsnull입니다 것입니다,하지만 당신은 사진 코드에는 수비 확인이 없습니다. 따라서 urlToProps.openStream() 부분은 NPE를 던집니다.

+1

리소스가 적절한 위치에 있으면 왜 발견되지 않습니까? – unmuse

+1

@unmuse :'urlToProps'가'null'인지 확인 했습니까? 그것이 제일 먼저하는 일입니다. –

+0

load()가 호출되면 null입니다. – unmuse