Search code examples
javaclassclasspathclassloaderclassnotfoundexception

Java Class.forName() from distant directory


I am currently loading Java classes using Class.forName() to load it.

clazz = Class.forName("interfaces.MyClass");

But now I want to load classes from different directory, I have tried to set classpath by

clazz = Class.forName("-cp \"C:/dir\" distantinterfaces.DistantClass");

With no success and ClassNotFoundException. Full path to distant class is:

C:/dir/distantinterfaces/DistantClass.class

Solution

  • Use an URLClassLoader for this. The code might be something along the lines of:

    File f = new File("C:/dir");
    URL[] cp = {f.toURI().toURL()};
    URLClassLoader urlcl = new URLClassLoader(cp);
    Class clazz = urlcl.loadClass("distantinterfaces.DistantClass");