2012-11-10 5 views
2

나는 다음과 같은 두 개의 클래스가 말 :이 클래스의 모두가 기본 패키지에있는 경우가 Class.forName()와 ClassNotFoundException가

public class MyClass { 
    public String getDescription() { 
     return "MyClass"; 
    } 
} 

public class MyClassLoader { 
    public static void main (String[] argv) throws ClassNotFoundException { 
     Class.forName("MyClass"); 
     System.out.println("MyClass class was successfully loaded"); 
    } 
} 

을, 그것을 잘 클래스를 실행 로드, 그리고 세상은 아름답습니다. I 클래스 MyClass을 삭제한다면 (나는 예상대로 패키지 (의 그것을 이클립스의 패키지) 말할 수 있도록 모두있는 경우, 그러나.,

ClassNotFoundException을 얻을하고

package myClassTestPackage; 
있을 것입니다 나는 그것을 실행하려고하면 두 선언 는

, 나는 ClassNotFoundException 얻을.

이 문제가 발생하고 나는 그것을 고칠 수 있습니까? 이것은 내가 훨씬에 경험하고 오류를 재현 할 수 있었다 가장 간단한 방법은 무엇

큰 프로그램.

답변

6

Class.forName() method은 매개 변수로 정규화 된 클래스 이름을 사용하기 때문입니다.

Parameters: 
    className - the fully qualified name of the desired class. 

그래서 :

Class.forName("myClassTestPackage.MyClass"); 
+0

나는 가지가 그런 일 것이다라고 생각했다. 고맙습니다. 감사합니다. – SirYancy