中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java類加載器URLClassLoader怎么使用

發布時間:2023-04-08 17:57:10 來源:億速云 閱讀:155 作者:iii 欄目:開發技術

這篇文章主要介紹“java類加載器URLClassLoader怎么使用”,在日常操作中,相信很多人在java類加載器URLClassLoader怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java類加載器URLClassLoader怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

類加載器之URLClassLoader的簡單demo

public class Test {
	public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, IOException {
		URL[] urls = new URL[] {new URL("http://192.168.119.132:8080/images/animal.jar")};
		URLClassLoader classLoader = new URLClassLoader(urls);
		//加載類以后就可以得到 Class 對象了
		Class<?> clazz = classLoader.loadClass("com.learn.animal.Dog");
		classLoader.close();  //加載完類以后就可以刪除了。
		//關閉 classLoader, 否則會造成 資源泄露  Resource leak
		//這里不使用默認的構造器,使用帶參數的構造器 獲取特殊的構造器
		Constructor<?> con = clazz.getDeclaredConstructor(String.class, int.class, int.class);
		//使用構造器創建對象
		Object ob = con.newInstance("小黑",12,50);
		//在調用 Dog 對象的 say 方法,返回對 Dog 對象自己的描述
		Method mtd0 = clazz.getMethod("say", new Class<?>[] {});  
		String dogSay = (String)mtd0.invoke(ob, new Object[] {});  
		System.out.println(dogSay);
		//再使用setter 方法,改變屬性  模擬 Dog 對象,逐漸長大,變胖  哈哈!
		System.out.println("Three years later......");
		Method mtd1 = clazz.getMethod("setAge", int.class);
		mtd1.invoke(ob, 15);
		Method mtd2 = clazz.getMethod("setWeight", int.class);
		mtd2.invoke(ob, 70);
		//注意這些方法是有返回值的!  返回值都是 Object 類型,需要自己強轉類型
		dogSay = (String)mtd0.invoke(ob, new Object[] {});  
		System.out.println(dogSay);
		System.out.println("It's over!");
	}
}

這里的 URL 資源,我用的是虛擬機里面的搭建的簡單的 nginx 服務器,也是看著別人的教程搭建的,很簡陋的一個服務器,哈哈。但是,這里足夠使用了,如果沒有條件,或者想簡單一點,可以使用本地的文件系統。
使用 file:///jar包地址 這個替換就行了。

這里使用的 jar 包也很簡單,但是我直接打成了 jar 包,只有 class 文件了,我反編譯以下,把代碼圖片貼出來吧。
這個反編譯不是全部代碼,但是細節很簡單,只有一個 say() 方法,可以參照下面的運行截圖,補全。

java類加載器URLClassLoader怎么使用

然后是運行截圖,注意我這里這個 -encoding utf-8 是指定使用編碼字符集,因為cmd里面執行代碼,如果有中文可能無法通過編譯。

java類加載器URLClassLoader怎么使用

到此,關于“java類加載器URLClassLoader怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

哈巴河县| 靖江市| 嘉祥县| 太原市| 托克托县| 石泉县| 上犹县| 贺兰县| 台湾省| 咸阳市| 团风县| 荣昌县| 保德县| 青冈县| 鹰潭市| 乌兰浩特市| 色达县| 汨罗市| 呼和浩特市| 阜平县| 双江| 泗阳县| 留坝县| 涟水县| 抚顺县| 视频| 崇明县| 定南县| 普兰县| 茌平县| 古蔺县| 娱乐| 禹城市| 岳阳市| 新源县| 尼木县| 镇雄县| 平安县| 盈江县| 定兴县| 蒙城县|