2012-04-17 1 views
0

패키지에서 * .class 리소스를 읽으려고합니다. 나는 ... 이것을 달성하기 위해 다음 코드를 사용하고이 코드를 실행하면 캔트 리소스 읽기

URL path = SomeClass.class.getResource("/source/someClass.class"); 

, 나는 path = null;와 끝까지. 그러나 동일한 코드를 사용하여 * .gif 및 * .txt 개의 파일과 같은 다른 리소스에 액세스하려고하면 성공합니다. * .class 파일에 액세스 할 수없는 이유가 있습니까?

+0

Jar의 URL은 대소 문자를 구분합니다. 파일의 이름이 SomeClass.java가 아닌지 확인하십시오. –

답변

0

리소스 경로가 잘못되었을 수 있습니다. 클래스 디렉토리는 프로젝트에 특수하기 때문에.

는 다음을 시도 할 수 있습니다 :

URL path = SomeClass.class.getResource("PackagePath/someClass.class"); 

"/ COM/XXX/projectTest"같은 packagePath를.

+0

당신이 옳았어요. 많이 감사합니다 !! –

0

javadoc을 다시 읽으십시오. 나는이 두 가지 방법으로 당신의 getResource을 (사용)에 대해 설명 생각 :

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html#getResource(java.lang.String)

시도를 다음

InputStream stream = Class.getResourceAsStream("modified/package/SomeClass") 

당신 때문에 :

URL path = Class.getResource("modified/package/SomeClass") 

당신은 사용 할 수 있습니다 클래스 파일을 Jar 파일에 복사하려고합니다.

+0

다음 tryed : URL url = Class.getResource (". package.SomeClass") - 작동하지 않습니다. –

+0

잘못 했어요. 그것이 작동하지 않는 이유입니다. Class.getResource ("package/SomeClass")를 사용하십시오. javadoc에서는 정규화 된 클래스 이름에서 '.'을 '/'로 바꾸어야한다고 설명합니다. – chubbsondubs