Problem with loading Classes at runtime
I'm trying to load classes at runtime, kinda like a plugin system. Unfortunately I always get a ClassNotFoundException when attempting a load. The "DL01.class" file resides in a subfolder "DL01" to "DynamicLoading.class" file. What am I doing wrong, why can't the plugin be found?
Getter.java (plugin interface):
publicinterface Getter
{
public String GetString();
}
DL01.java (actual plugin):
publicclass DL01implements Getter
{
public String GetString()
{
return"DL01";
}
}
DynamicLoading.java (the main program):
publicclass DynamicLoading
{
publicstaticvoid main(String[] argument_list)
{
PrintGetter("DL01");
}
privatestaticvoid PrintGetter(String name)
{
Getter getter = LoadGetter(name);
if(getter !=null)
{
System.out.println("\"" + name +"\" returned string \"" + getter.GetString() +"\"!");
}
else
{
System.out.println("\"" +name +"\" not found!");
}
}
privatestatic Getter LoadGetter(String name)
{
try
{
Getter getter =null;
java.net.URL[] url_list =new java.net.URL[1];
url_list[0] =new java.io.File("/DL01/").toURL();
ClassLoader class_loader =new java.net.URLClassLoader(url_list);
Class class_object = class_loader.loadClass(name);
Object object = class_object.newInstance();
if(objectinstanceof Getter) getter = (Getter)object;
return getter;
}
catch(Exception exception)
{
exception.printStackTrace();
returnnull;
}
}
}

