日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java自定義ClassLoader加載指定的class文件操作

瀏覽:203日期:2022-08-16 14:34:00

繼承ClassLoader并且重寫findClass方法就可以自定義一個類加載器,具體什么是類加載器以及類加載器的加載過程與順序下次再說,下面給出一個小demo

首先定義一個類,比如MyTest,并且將其編譯成class文件,然后放到一個指定的文件夾下面,其中文件夾的最后幾層就是它的包名,這里我將這個編譯好的類放到 : /Users/allen/Desktop/cn/lijie/MyTest.class

java自定義ClassLoader加載指定的class文件操作

package cn.lijie;public class MyTest { public void show() { System.out.println('show test!'); }}自定義的類加載器:

public class MyClassLoader extends ClassLoader { @Override protected Class<?> findClass(String name) { String myPath = 'file:///Users/allen/Desktop/' + name.replace('.','/') + '.class'; System.out.println(myPath); byte[] cLassBytes = null; Path path = null; try { path = Paths.get(new URI(myPath)); cLassBytes = Files.readAllBytes(path); } catch (IOException | URISyntaxException e) { e.printStackTrace(); } Class clazz = defineClass(name, cLassBytes, 0, cLassBytes.length); return clazz; }}測試的主函數:

public class MainClass { public static void main(String[] args) throws ClassNotFoundException { MyClassLoader loader = new MyClassLoader(); Class<?> aClass = loader.findClass('cn.lijie.MyTest'); try { Object obj = aClass.newInstance(); Method method = aClass.getMethod('show'); method.invoke(obj); } catch (Exception e) { e.printStackTrace(); } }}

執行主函數,調用外部class的show方法:

java自定義ClassLoader加載指定的class文件操作

補充:java遠程加載class文件

1.在win上創建java文件并編譯

java自定義ClassLoader加載指定的class文件操作

2.上傳到遠程服務器

java自定義ClassLoader加載指定的class文件操作

3.編寫java代碼

準備:

引入jar包 ganymed-ssh2-262.jar

1.加載外部class要定義自己的類加載器

2.使用內存流

import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.SFTPInputStream;import ch.ethz.ssh2.SFTPv3Client;public class Fs{ public static void main(String[] args) throws Exception { OwnClassLoader ocl = new OwnClassLoader(); String ip,user,password; ip = '120.34.168.80';//自己的遠程ip user = 'root';//username password = '123456';//password ocl.login(ip, user, password); Object obj = ocl.loadeOthClass('/opt/4/tt.class');//class文件路徑 System.out.println(obj); Class c = obj.getClass(); Field f = c.getDeclaredField('age'); f.setAccessible(true); System.out.println('age:'+f.get(obj)); }}//自定義類加載器class OwnClassLoader extends ClassLoader{ private Connection conn = null; //初始化鏈接 public Connection login(String ip,String user,String password){ Connection conn = null; try { //也可以new Connection(ip, port)創建對象,默認22 conn = new Connection(ip); //連接遠程服務 conn.connect(); //使用用戶名和密碼登錄 conn.authenticateWithPassword(user, password); this.conn = conn; return conn; } catch (IOException e) { e.printStackTrace(); } return null; } //返回遠程實例 public Object loadeOthClass(String url) throws Exception{ if(null==conn) throw new Exception('請初始化鏈接'); SFTPv3Client sc = new SFTPv3Client(conn);//創建ssh客戶端連接 InputStream is = new SFTPInputStream(sc.openFileRO(url));//創建輸入流 byte[] b = this.readClassFile(is); Class<?> c = super.defineClass(b, 0, b.length);//定義class return c.newInstance();//創建實例 } //讀取遠程class文件 private byte[] readClassFile(InputStream is){ byte[] b = new byte[1024]; int len; ByteArrayOutputStream bos = null; try { bos = new ByteArrayOutputStream();//內存流輸出 while((len=is.read(b))!=-1){ bos.write(b, 0, len); } b = bos.toByteArray(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if(is!=null) is.close(); if(bos!=null) bos.close(); } catch (Exception e2) { // TODO: handle exception } } return b; } }

輸出結果:

java自定義ClassLoader加載指定的class文件操作

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久99久久久精品欧美| 久久精品xxxxx| 狠狠久久婷婷| 加勒比视频一区| 综合亚洲视频| 三上悠亚国产精品一区二区三区 | 青青久久av| 老司机精品视频在线播放| 国产欧美一区二区三区国产幕精品| 国产精品mm| 欧美片第1页综合| 亚洲成人不卡| 精品中文在线| 日韩亚洲精品在线观看| 99re国产精品| 五月天久久网站| 精品视频一区二区三区在线观看| 国产精品国产三级国产在线观看| 国产精品网站在线看| 偷拍欧美精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲天堂av影院| 精品欧美久久| 亚洲精品九九| 国产精品成人**免费视频 | 91精品一区二区三区综合在线爱 | 蜜桃视频免费观看一区| 日韩成人午夜精品| 精品视频一区二区三区四区五区| 97国产精品| 欧美黄色网页| 久久午夜精品| 国产精品一区高清| 福利一区二区三区视频在线观看| 久久美女精品| 日韩精品免费视频人成| 国产在线日韩精品| 国产精品美女久久久浪潮软件| 欧美一级一区| 999国产精品永久免费视频app| 视频精品一区二区| 国产一区2区| 免费久久99精品国产自在现线| 欧美日本不卡| 欧洲毛片在线视频免费观看| 日本电影久久久| 国产精品久久久久久久久妇女| 亚洲一区二区免费看| 久久99蜜桃| 夜夜嗨av一区二区三区网站四季av| 91精品美女| 136国产福利精品导航网址| 日韩在线电影| 欧美黄色网页| 国产欧美一区二区三区精品观看 | 久久av一区| 丁香婷婷久久| 中文字幕免费一区二区| 美女精品一区二区| 欧美一区=区| 成人美女视频| 欧美日韩中出| 婷婷成人在线| 精品一区二区三区视频在线播放 | 午夜日韩在线| 久久亚洲黄色| 亚洲最新av| 婷婷成人在线| 久久影院资源站| 亚洲制服一区| 国产91精品对白在线播放| 麻豆精品一区二区综合av| 亚洲高清激情| 色爱综合网欧美| 国产伦理久久久久久妇女| 亚洲激情中文在线| 国产精品mv在线观看| 国产日韩欧美一区二区三区| 日韩在线高清| 国产精品伊人| 亚洲性视频在线| 国产精品7m凸凹视频分类| 精品视频高潮| 国产亚洲一卡2卡3卡4卡新区| 婷婷六月综合| 日韩免费高清| 卡一卡二国产精品| 美女国产精品| 亚洲黄色在线| 成人精品中文字幕| 日本va欧美va精品发布| 亚洲欧美成人综合| 国产一区久久| 久久伦理在线| 性欧美videohd高精| 精品精品国产三级a∨在线| 国产精品99久久免费| 日本国产欧美| 日韩精品免费观看视频| 日韩精品一二三四| 午夜在线一区| 国产精品普通话对白| 欧美一级鲁丝片| 国产精品99一区二区三| 美女性感视频久久| 久久成人福利| 国产精品亚洲四区在线观看| 日韩av不卡在线观看| 中文字幕成人| 最新国产精品| 日韩精品a在线观看91| 亚洲影视一区二区三区| 一区二区三区午夜视频| 在线观看亚洲精品福利片| 先锋影音久久久| 久久午夜影视| 亚洲不卡视频| 亚洲字幕久久| 亚洲精品成人一区| 日本在线成人| 91精品视频一区二区| 69精品国产久热在线观看| 日韩av一二三| 国产精品主播| 欧美国产中文高清| 久久天堂影院| 精品国产免费人成网站| 亚洲精品一级二级| 久久黄色影院| 香蕉精品视频在线观看| 欧美久久精品一级c片| aa国产精品| 老鸭窝亚洲一区二区三区| 日韩中文字幕一区二区三区| 久久亚洲欧美| 日本不卡高清视频| 国产精品天天看天天狠| 精品一区二区三区中文字幕视频| 韩国女主播一区二区三区| 四虎国产精品免费观看| 成人午夜国产| 欧美日韩国产高清电影| 伊人国产精品| 久久精品99国产精品| 美女视频一区在线观看| 超级白嫩亚洲国产第一| 久久中文字幕av| 性色av一区二区怡红| 久久精品超碰| 国产传媒在线观看| 亚洲一级网站| 日韩在线视频一区二区三区| 国产福利资源一区| 久久精品亚洲人成影院| 美女黄网久久| 国产精品国码视频| 日韩黄色大片网站| 国产精品色网| 欧美久久一区二区三区| 四虎成人av| 亚洲综合日本| 国产精品一区二区99| 狠狠躁少妇一区二区三区| 国产中文一区| 欧美亚洲综合视频| 激情黄产视频在线免费观看| 国产毛片久久| 国产高清日韩| 性欧美69xoxoxoxo| 国产精品一站二站| 久久影院一区| 国产欧美日韩视频在线| 久久香蕉国产| 国产日韩一区二区三区在线播放| 日韩中文在线电影| 亚洲精品系列| 国产aa精品| 亚洲精品99| 欧美精品99| 最新日韩欧美| 国产一区二区亚洲| 中文字幕一区二区三区四区久久 | 亚洲视频电影在线| 国产一区二区三区亚洲综合| 91高清一区| 国产精品天天看天天狠| 最新亚洲一区| 韩国女主播一区二区三区| 蜜臀久久99精品久久久久久9| 福利片在线一区二区| 日韩有吗在线观看| 韩日一区二区三区| 你懂的国产精品| 亚洲欧美日韩国产一区| 国内精品伊人| 日韩精品成人在线观看| 欧美1区2区3区| 精品一区二区三区中文字幕 | 日韩1区2区| 日韩av黄色在线|