我写了一个classLoader。通过使用它,我动态地实例化一个类。但是如果类引用其他类,我会收到错误,说找不到符号,尽管我已经在类路径中包含了这些其他类。我可以解决这个问题。
这是我的代码:
public static void main(String[] args) {
String className = "classLoader.SayHello";
String Dir = "D:\\temp\\";
KonaClassLoader kcl = new KonaClassLoader();
Class<?> clazz = null;
Object obj = null;
Method m = null;
try {
clazz = kcl.loadClassFromLocal(Dir,className);
obj = clazz.newInstance();
m = clazz.getMethod("sayGoodbye", String.class);
m.invoke(obj, "Robin");
} catch (Exception e) {
e.printStackTrace();
}
}
问题是,如果我在SayHello类中定义任何其他对象,我会收到错误,说“找不到符号”。我已经在类路径中包含了这些其他类。
答案 0 :(得分:0)
编译SayHello时,类路径应该包含Say Hello Class中包含的类的库。
当我们执行KonaClassLoader时,会尝试加载SayHello,然后加载包含的类。
无需编写loadclassfromfile方法,我们可以使用现有方法loadClass,只需在Java类路径中提及库。我执行了相同的操作并成功完成了。
D:\ Kepler Projects \ FirstStep \ target \ classes \ com \ firststep \ classloader&gt; java -cp“ D:\ Kepler Projects \ FirstStep \ target \ classes; D:\ Temp“com.firststep.classloader.C lient 说再见罗宾