Java URLClassLoader动态加载外部java代码
2017-08-14 22:42
369 查看
外部代码
package priv.tuyou; public class Say { public void say(){ System.out.println("say priv.tuyou.hello"); } }
存放路径
动态加载示例
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import priv.tuyou.Say; public class URLPathClassLoader extends URLClassLoader{ private String packageName = "priv.tuyou"; public URLPathClassLoader(URL[] classPath, ClassLoader parent){ super(classPath, parent); } @Override protected Class<?> findClass(String name) throws ClassNotFoundException { Class<?> aClass = findLoadedClass(name); if(aClass != null){ return aClass; } if(!packageName.startsWith(name)){ return super.loadClass(name); } return null; } public static void main(String[] args) throws MalformedURLException, ClassNotFoundException, SecurityException, NoSuchMethodException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { URL[] urls = {new URL("file://Users/apple/temp")}; URLPathClassLoader urlPathClassLoader = new URLPathClassLoader(urls, getSystemClassLoader()); Class say = urlPathClassLoader.findClass("priv.tuyou.Say"); Method method = say.getMethod("say"); Object instance = say.newInstance(); method.invoke(instance); Say say2 = (Say)instance; say2.say(); } }
相关文章推荐
- Java ClassLoader动态加载外部java代码
- java代码实现利用 classloader 动态加载 jar包、文件夹到classpath中
- java ClassLoader机制和如何加载外部class文件(含代码)
- java用URLClassLoader动态加载JDBC
- JAVA动态加载JAR包的实现,代码很简单,但对新手很难!
- 通过URLClassLoader实现动态加载指定路径下所有Jar
- 运用URLClassLoader加载外部jar包的java类,生成Class文件
- java加载外部文件数据到代码中:外部数据文件放到jar包中,调用方法getResourceAsStream
- 动态加载外部javascript文件的函数代码分享
- Fresco动态设置加载特效[Java代码实现XML效果]GenericDraweeHierarchy
- Java运行时动态加载类之ClassLoader方法带参数
- 整理一下Java动态编译Java代码,并在加载到内存中然后执行类中方法的api的介绍
- Fresco动态加载圆角(java代码实现)
- 通过URLClassLoader实现动态加载jar文件
- java classLoader动态加载
- 【java】动态加载类-URLClassLoader
- [改善Java代码]使用forName动态加载类文件
- js取得url参数,js回到顶部代码,动态加载JS文件
- [改善Java代码]动态加载不适合数组