This is definitely possible; I've done it. Here are a couple of things that may stimulate your thinking. The exception is thrown by the class loader, so the question is what class loader are your using? If you are using your own class loader, its parent typically must be set to be Thread.currentThread().getcontextClassLoader(). Another thing to consider is to pay close attention to what class is not being found. Your code my be trying to load class Foo and Foo.class may well be in the class path, but if Foo depends on some other class that is not in the class path, then you are out of luck.