2016-11-17 12 views
0

동일한 코드 행은 Windows에서는 작동하지만 Linux에서는 작동하지 않습니다. 코드는 실행 가능한 jar 파일을 통해 실행됩니다.Java jar getResource가 Linux에서 작동하지 않습니다.

  • BuildPath의 항목 : {PROJECT}/src에, {PROJECT}/입술 Test1.java의
  • 프로젝트 경로 : TC_Mapping.xml의/SRC/COM/QE/폴더의 유틸리티/Test1을
  • 프로젝트 경로 : /res/TC_Mapping.xml

.

package com.qe.util; 
public class Test1{ 
    public static void parseTCMapping(){ 
    ... 
     String xmlPath = TCDetailsExtractor.class.getClassLoader().getResource("TC_Mapping.xml").toString(); 
     System.out.println(xmlPath); 
     InputStream is = TCDetailsExtractor.class.getClassLoader().getResourceAsStream(xmlPath); 
    ... 
    } 
} 

답변

0

jar에 리소스가있는 경우 콘텐츠를 얻으려면 getResourceAsStream() 메서드를 사용해야합니다. 이것은 파일이 jar에 없지만 응용 프로그램이 jar로 압축 된 경우에는 그렇지 않을 수 있습니다.

+0

[TCDetailsExtractor.class.getClassLoader(). getResourceAsStream (..)]에서 이미이 작업을 수행하고 있습니다.이 코드 라인은 Win에서는 작동하지만 Linux에서는 작동하지 않습니다. InputStream는 항상 null로 설정됩니다. –