java - loadClass throws NoClassDefFoundError caused by ClassNotFoundException -


using following code noclassdeffounderror caused classnotfoundexception:

file file = new file( "c:\\prototype.core.bl.xmodelval.xmodel-1.0.0.jar" ); url url = file.touri().tourl(); url[] urls = new url[] { url }; classloader cl = new urlclassloader( urls ); class cls = cl.loadclass("de.zeb.control.prototype.core.bl.xmodelval.xmodel.entity.entitynamelengthxmodelvalidationrule" ); 

the jar , class in jar available. following exception thrown cl.loadclass. full exception stack trace follows:

exception in thread "main" java.lang.noclassdeffounderror: de/zeb/control/prototype/core/bl/xmodelval/xmodelvalidationrule     @ java.lang.classloader.defineclass1(native method)     @ java.lang.classloader.defineclasscond(classloader.java:631)     @ java.lang.classloader.defineclass(classloader.java:615)     @ java.security.secureclassloader.defineclass(secureclassloader.java:141)     @ java.net.urlclassloader.defineclass(urlclassloader.java:283)     @ java.net.urlclassloader.access$000(urlclassloader.java:58)     @ java.net.urlclassloader$1.run(urlclassloader.java:197)     @ java.security.accesscontroller.doprivileged(native method)     @ java.net.urlclassloader.findclass(urlclassloader.java:190)     @ java.lang.classloader.loadclass(classloader.java:306)     @ java.lang.classloader.loadclass(classloader.java:247)     @ java.lang.classloader.defineclass1(native method)     @ java.lang.classloader.defineclasscond(classloader.java:631)     @ java.lang.classloader.defineclass(classloader.java:615)     @ java.security.secureclassloader.defineclass(secureclassloader.java:141)     @ java.net.urlclassloader.defineclass(urlclassloader.java:283)     @ java.net.urlclassloader.access$000(urlclassloader.java:58)     @ java.net.urlclassloader$1.run(urlclassloader.java:197)     @ java.security.accesscontroller.doprivileged(native method)     @ java.net.urlclassloader.findclass(urlclassloader.java:190)     @ java.lang.classloader.loadclass(classloader.java:306)     @ java.lang.classloader.loadclass(classloader.java:247)     @ de.zeb.control.prototype.core.bl.xmodelval.jarwelfare.loader.xmodeljarloader.load(xmodeljarloader.java:32)     @ de.zeb.control.prototype.core.bl.xmodelval.jarwelfare.supplier.runner.main(runner.java:29) caused by: java.lang.classnotfoundexception: de.zeb.control.prototype.core.bl.xmodelval.xmodelvalidationrule     @ java.net.urlclassloader$1.run(urlclassloader.java:202)     @ java.security.accesscontroller.doprivileged(native method)     @ java.net.urlclassloader.findclass(urlclassloader.java:190)     @ java.lang.classloader.loadclass(classloader.java:306)     @ java.lang.classloader.loadclass(classloader.java:247)     ... 24 more 

it seems strange me full class name of classnotfoundexception doesn't match name of cl.loadclass.

thank help.

you might need provide parent classloader, because otherwise classloader define won't able access classes present in application. e.g.:

 classloader cl = new urlclassloader( urls , getclass().getclassloader()); 

Comments

Popular posts from this blog

Why can rails not find a route created by a helper? -

javascript - jquery or ashx not working -

php - Redirect and hide target URL -