首页 > 代码库 > Java 从Jar文件中动态加载类
Java 从Jar文件中动态加载类
由于开发的需要,需要根据配置动态加载类,所以简单测试了一下JAVA动态加载类
定义接口
package loader; public interface HelloIface { public String hello(); public String sayHi(); }
实现接口
在其他插件类实现此接口,并导出为jar,如D:/tmp/test.jar
package loader; public class HelloImpl implements HelloIface{ @Override public String hello() { return "hello,JAVA世界"; } @Override public String sayHi() { return "Hi,JAVA World"; } }
动态加载类
import java.net.URL; import java.net.URLClassLoader; import loader.HelloIface; public class Main { public static void main(String[] args) { String classPath = "loader.HelloImpl";// Jar中的所需要加载的类的类名 String jarPath = "file:///D:/tmp/test.jar";// jar所在的文件的URL ClassLoader cl; try { // 从Jar文件得到一个Class加载器 cl = new URLClassLoader(new URL[] { new URL(jarPath) }); // 从加载器中加载Class Class<?> c = cl.loadClass(classPath); // 从Class中实例出一个对象 HelloIface impl = (HelloIface) c.newInstance(); // 调用Jar中的类方法 System.out.println(impl.hello()); System.out.println(impl.sayHi()); } catch (Exception e) { e.printStackTrace(); } } }
Java 从Jar文件中动态加载类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。