2014-07-17 4 views
0

을주고 그래서 나는이 있습니다ClassLoader.getSystemResourceAsStream 널 (null) 예외

parser.parse(ClassLoader.getSystemResourceAsStream("/XML64_Decoded/res/sample.xml"), handler); 

을 나는이 오류가 무엇입니까 :

Exception in thread "main" java.lang.IllegalArgumentException: InputStream cannot be null 
at javax.xml.parsers.SAXParser.parse(Unknown Source) 
at vms.main(vms.java:26) 
+0

xml 파일을 찾을 수 없다는 것은 제 생각입니다. 한 번 경로를 확인하십시오 – Kode

+0

경로를 확인하고 거기에 파일이 이미 그래서 왜 아직도이 오류가 점점? – user3779673

+0

시도해보십시오 : .class.getResourceAsStream ("/ sample.xml") – Kode

답변

0

코드가 당신의 케이스와의 InputStream을 얻을 수없는 것 다음 줄은 원인이 될 수 있습니다

ClassLoader.getSystemResourceAsStream("/XML64_Decoded/res/sample.xml") 

그것은 InputStream의 인스턴스를 반환 나는 똑같은 문제에 직면했다. 우리가 진행하기 전에 xml 파일의 위치를 ​​알아 내야합니다. 이 코드가있는 클래스와 동일한 패키지에 있거나 다른 패키지에있는 경우 예를 들어,이 코드를 SAXParserDemo 클래스에서 사용하고 있으며 두 개의 XML 파일 (employee.xmlemployeeInPckg.xml)이 있습니다. 내가 사용 InputStream를 얻을 수 있도록 첫 번째 파일은 같은 패키지 즉, 내 수업 SAXParserDemo 옆에 :

InputStream is1 = SAXParserDemo.class.getResourceAsStream("employee.xml"); 

employeeInPckg.xml이 다른 파일을 위치 src/files/employee/xml/employeeInPckg.xml에서 내가 얻을 수 InputStream 등 :

InputStream is2 = lassLoader.getSystemClassLoader().getSystemResourceAsStream("files/employee/xml/employeeInPckg.xml"); 

검색 규칙은 ClassLoader#getResource(String)의 javadoc과 Class#getResource(String)의 javadoc에 설명되어 있습니다.