Java 從Jar文件中動態加載類
Java: 使用Java中的ClassLoader搭配上反射功能就能實現從Jar文件中動態加載類
由于開發的需要,需要根據配置動態加載類,所以簡單測試了一下JAVA動態加載類
定義接口
package loader;public interface HelloIface {
public String hello(); public String sayHi();
}</pre>
實現接口
在其他插件類實現此接口,并導出為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(); } } }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!