2012-11-28 1 views
1

Netbeans과 ImageIcons 같은 JAR 파일 모두에로드 할 수있는 리소스를 얻을 수 있었지만 현재는 동일한 디렉토리에서 "읽기"를 할 수 없습니다. JAR 파일의 프로그램 클래스 경로 디렉토리에 디렉토리와 파일을 나열하려고하지만 JAR 파일에서 프로그램을 실행하면 디렉토리를 읽을 수 없게됩니다. 그것은 Netbeans에서 잘 작동합니다. 넷빈즈에서 실행하면 Netbeans에서 읽을 수있는 디렉토리가 아닌 JAR 파일에서 실행

tileDirectory = new File(TileDirectoryLister.class.getResource("/resources/images/tiles").getPath());

jta.append("\nThe class path for the tile directory is:" 
      + "\n\t" + tileDirectory.getPath()); 

    jta.append("\nThe tile directory is readable: " + tileDirectory.canRead()); 

는 사실 인쇄; JAR 파일에서 실행할 때 false를 인쇄합니다. JAR 파일에서 실행할 때 canRead이 왜 false으로 인쇄됩니까?

답변

1

파일은 파일 시스템의 경로를 나타냅니다. 아이콘은 jar 파일 안에 있습니다. 파일을 사용하여 액세스 할 수 없습니다.

는 InputStream를 얻을

SomeClass.class.getResourceAsStream("/resources/images/tiles/SomeIcon.png"); 

를 사용하여 jar 파일의 일부 리소스에 대한 액세스를 얻으려면, 또는

SomeClass.class.getResource("/resources/images/tiles/SomeIcon.png"); 

는 URL을 얻을 수 있습니다.

관련 문제