2014-01-16 3 views
0

리플렉션을 사용하여 패키지가 필요한 Child라는 클래스의 생성자를 호출합니다. org.apache.commons.lang3.ArrayUtils 클래스 경로에 추가했으며 다른 곳에서 사용했습니다. 그냥 괜찮아요,하지만 반사는 내 수업 경로를 보지 않는 것 같습니다.J2EE 리플렉션 클래스

오류 : java.lang.NoClassDefFoundError가 : 조직/아파치/평민/lang3/ArrayUtils

내가 검색 한 클래스 로더에 대해 쓰고 많이 볼하지만 난 여전히 이해가 안했습니다. 누군가가 문제를 설명하고 최대한 명확하게 해결할 수 있습니까?

//main class: 
try { 
    Class<?> claz = Class.forName(claz_str); 
    Parent p = (Parent) claz.getDeclaredConstructor(String.class, String[].class, String[].class).newInstance(elmName, nodes_arr, params_arr); 
    } catch (Exception e) { 
    throw new Exception(e.getCause()); 
} 

// Child.class 
import org.apache.commons.lang3.ArrayUtils; 
public class Child extends Parent{ 
    public Child(){ 
     if(!ArrayUtils.contains(NUM_OF_PARAMS, 2)){ // <<====== run time error 
     System.out.println("stuff") 
     } 
    } 
} 

답변

0

코드가 정상인 것 같습니다. 귀하의 학급의 정규 자격증 명을 claz_str으로 제공하고 있습니까? 이어야합니다.

claz_str = "com.package.Class"; 

희망 사항을 해결하십시오.

관련 문제