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

javascript - jquery or ashx not working -

opencv - DataType<cv::detail::deriv_type>::depth what is it used for -

python 3.x - Mapping specific letters onto a list of words -