Class J2EE反射类

Class J2EE反射类,class,jakarta-ee,reflection,loader,Class,Jakarta Ee,Reflection,Loader,我使用反射调用名为Child的类的构造函数,该类需要包:org.apache.commons.lang3.ArrayUtils 我已经将它添加到类路径中,并在其他地方使用它,但反射似乎看不到我的类路径 错误: NoClassDefFoundError:org/apache/commons/lang3/ArrayUtils 我已经搜索并看到了很多关于类加载器的文章,但我仍然不明白这一点。有人能尽可能清楚地解释一下这个问题以及如何解决它吗 //main class: try { Class&l

我使用反射调用名为Child的类的构造函数,该类需要包:org.apache.commons.lang3.ArrayUtils 我已经将它添加到类路径中,并在其他地方使用它,但反射似乎看不到我的类路径

错误: NoClassDefFoundError:org/apache/commons/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")
      }
   }
}

你的代码看起来不错。您是否提供您的班级的全名为claz_str。 应该是

claz_str = "com.package.Class";
希望能解决你的问题