java - NoClassDefFoundError ClassLoader -


im getting error on thie line loadedclass = classloader.loadclass("scripts.compass");

somehow file compiles fine when try load class wont work because says missing class com/deft/core/scripts/deftscript

compiling & instantiating:

    file script = new file("./plugins/deft-core/scripts/compass.java");     diagnosticcollector<javafileobject> diagnostics = new diagnosticcollector<javafileobject>();     javacompiler compiler = toolprovider.getsystemjavacompiler();     standardjavafilemanager filemanager = compiler.getstandardfilemanager(diagnostics, null, null);      list<string> optionlist = new arraylist<string>();     optionlist.addall(arrays.aslist("-classpath", system.getproperty("java.class.path") + ";./plugins/deft-core.jar"));       iterable<? extends javafileobject> compilationunit = filemanager.getjavafileobjectsfromfiles(arrays.aslist(script));     javacompiler.compilationtask task = compiler.gettask(null, filemanager, diagnostics, optionlist, null, compilationunit);     if (task.call()) {          object obj = null;         try {             urlclassloader classloader = new urlclassloader(new url[]{new file("./plugins/deft-core/").touri().tourl()});             class<?> loadedclass;             loadedclass = classloader.loadclass("scripts.compass");             obj = loadedclass.newinstance();         } catch (classnotfoundexception | instantiationexception | illegalaccessexception | malformedurlexception e) {             e.printstacktrace();         }           if (obj instanceof deftscript) {             deftscript deftscript = (deftscript)obj;             deftscript.onenable();         }     } else {         (diagnostic<? extends javafileobject> diagnostic : diagnostics.getdiagnostics()) {             system.out.format("error on line %d in %s%n", diagnostic.getlinenumber(), diagnostic.getsource().touri());         }     } 

compass.java

package scripts; import com.deft.core.scripts.deftscript; public class compass extends deftscript {     @override     public void onenable() {     } } 

deftscript.java

package com.deft.core.scripts;  public abstract class deftscript {      public abstract void onenable(); } 

error:

java.lang.noclassdeffounderror: com/deft/core/scripts/deftscript     @ java.lang.classloader.defineclass1(native method) ~[?:1.8.0_45]     @ java.lang.classloader.defineclass(unknown source) ~[?:1.8.0_45]     @ java.security.secureclassloader.defineclass(unknown source) ~[?:1.8.0_45]     @ java.net.urlclassloader.defineclass(unknown source) ~[?:1.8.0_45]     @ java.net.urlclassloader.access$100(unknown source) ~[?:1.8.0_45]     @ java.net.urlclassloader$1.run(unknown source) ~[?:1.8.0_45]     @ java.net.urlclassloader$1.run(unknown source) ~[?:1.8.0_45]     @ java.security.accesscontroller.doprivileged(native method) ~[?:1.8.0_45]     @ java.net.urlclassloader.findclass(unknown source) ~[?:1.8.0_45]     @ java.lang.classloader.loadclass(unknown source) ~[?:1.8.0_45]     @ java.lang.classloader.loadclass(unknown source) ~[?:1.8.0_45]     @ com.deft.core.main.deftcore.onenable(deftcore.java:79) ~[?:?] 

you need load com.deft.core.scripts.deftscript first before load scripts.compass extending it. or can make sure drop parent class/jar in parent class loader path.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -