String HelloWorldName = "com.tools.classloader.data.HelloWorld";
Class HelloWorld1Clazz = null;
try {
HelloWorld1Clazz=antClassLoader.loadClass(HelloWorldName);
} catch (ClassNotFoundException e) {
System.out.println("class not found");
}
// new HelloWorld1 instance
Object HelloWorld1=HelloWorld1Clazz.newInstance();
Method method1 = HelloWorld1Clazz.getMethod("setName", new Class[]{String.class});
method1.invoke(HelloWorld1, "HelloWorld1");
method1 = HelloWorld1Clazz.getMethod("getName", new Class[]{});
Object value1 = method1.invoke(HelloWorld1,null);
//check which classloader is used.
System.out.println("HelloWorld1's name:"+value1);
System.out.println("HelloWorld1's classLoader:"+HelloWorld1.getClass().getClassLoader());
public class AntClassLoaderUtil
{
public ClassLoader getAntClassLoaderFromDir(String[] directory)
{
Project project = new Project();
project.init();
Path path = new Path(project, null);
for (int i = 0; i < directory.length; i++) {
File dir = new File(directory[i]);
String[] filePaths = null;
if (dir.isDirectory()&& dir.exists()) {
File[] files = dir.listFiles(new FilenameFilter ()
{
public boolean accept (File file, String name)
{
return name.endsWith (".jar") || name.endsWith (".zip");
}
});
filePaths = new String[files.length];
for (int j = 0; j < files.length; j++) {
filePaths[j] = files[j].getAbsolutePath();
path.setPath(filePaths[j]);
}
}
}
String[] paths=path.list();
for (int i = 0; i < paths.length; i++) {
// System.out.println(paths[i]);
}
AntClassLoader loader = new AntClassLoader(project, path);
return loader;
}
public ClassLoader getAntClassLoaderFromJars(String[] jarspath)
{
Project project = new Project();
project.init();
Path path = new Path(project, null);
for (int i = 0; i < jarspath.length; i++) {
File jar = new File(jarspath[i]);
if (jar.isFile()&& jar.exists()&& (jar.getName().indexOf(".jar")>0)) {
path.setPath(jar.getAbsolutePath());
}
}
String[] paths=path.list();
for (int i = 0; i < paths.length; i++) {
// System.out.println(paths[i]);
}
AntClassLoader loader = new AntClassLoader(project, path);
return loader;
}