javaclassloader怎么加載jar包?
設(shè)我們有一個(gè)hello.jar文件,里面有一個(gè)Util類,我們希望在運(yùn)行期調(diào)將這個(gè)jar包放入到我們運(yùn)行環(huán)境并且調(diào)用里面的Util.getVersion方法。怎么實(shí)現(xiàn)?
在java中,我們的類都是通過(guò)ClassLoader來(lái)加載的,同時(shí)ClassLoader具有層級(jí)關(guān)系,當(dāng)某個(gè)類找不到時(shí),它會(huì)去他的父類加載器去尋找,如果依然找不到,就拋出ClassNotFoundException了。
為了動(dòng)態(tài)加載hello.jar里面的Util類,我們需要將這個(gè)jar包放入到我們的類加載器中去,然后再獲取里面的類。如下面的代碼。
// 位于hello.jar package com.flyingzl; public class Util { public static void getVersion(){ System.out.println("java version: " + System.getProperty("java.version")); } }