最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java動(dòng)態(tài)添加外部jar包到classpath的實(shí)例詳解

 更新時(shí)間:2017年09月08日 15:41:40   作者:357029540  
這篇文章主要介紹了java動(dòng)態(tài)添加外部jar包到classpath的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下

java動(dòng)態(tài)添加外部jar包到classpath的實(shí)例詳解

前言:

  在項(xiàng)目開發(fā)過程中我們有時(shí)候需要?jiǎng)討B(tài)的添加外部jar包,但是具體的業(yè)務(wù)需求還沒有遇到過,因?yàn)槿绻麆?dòng)態(tài)添加外部jar包后,我們就需要修改業(yè)務(wù)代碼,而修改代碼就需要重新啟動(dòng)服務(wù),那樣好像就沒有必要?jiǎng)討B(tài)添加外部jar包了,怎么樣才能不重新啟動(dòng)服務(wù)器就可以使用最新的代碼我沒有找到方法,如果各位知道的話給我點(diǎn)建議,回歸主題,實(shí)現(xiàn)動(dòng)態(tài)添加外部jar包到classpath的方法如下:

String beanClassName = "com.dynamic.DynamicBean3"; 
Map<String,Class<?>> classMap = new HashMap<String,Class<?>>(); 
String filePath = "f:\\testDynamicBean-1.0-SNAPSHOT.jar"; 
String uFilePath = "file:f:\\testDynamicBean-1.0-SNAPSHOT.jar"; 
 
URL url1 = new URL(uFilePath); 
URLClassLoader urlClassLoader = new URLClassLoader(new URL[] { url1 }, Thread.currentThread() 
        .getContextClassLoader()); 
List<JarEntry> jarEntryList = new ArrayList<>(); 
JarFile jarFile = new JarFile(filePath); 
Enumeration<JarEntry> jarEntryEnumeration = jarFile.entries(); 
while (jarEntryEnumeration.hasMoreElements()){ 
   JarEntry jarEntry = jarEntryEnumeration.nextElement(); 
   if (//jarEntry.getName().startsWith(filePath) && 
      jarEntry.getName().endsWith(".class")) { 
        jarEntryList.add(jarEntry); 
      } 
    } 
 
   for (JarEntry entry : jarEntryList) { 
      String className = entry.getName().replace('/', '.'); 
      className = className.substring(0, className.length() - 6); 
      if(!classMap.containsKey(beanClassName)){ 
        Class<?> loadClass = urlClassLoader.loadClass(className); 
        classMap.put(className,loadClass); 
      } 
    } 
    try { 
      Method printMethod = classMap.get(beanClassName).getMethod("printBean3"); 
      printMethod.invoke(classMap.get(beanClassName).newInstance()); 
    } catch (IllegalAccessException e) { 
      e.printStackTrace(); 
    } catch (InvocationTargetException e) { 
      e.printStackTrace(); 
    } catch (NoSuchMethodException e) { 
      e.printStackTrace(); 
    } catch (InstantiationException e) { 
      e.printStackTrace(); 
    } 

如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Java中工具Jstack的使用實(shí)例

    Java中工具Jstack的使用實(shí)例

    jstack用于生成java虛擬機(jī)當(dāng)前時(shí)刻的線程快照,下面這篇文章主要給大家介紹了關(guān)于Java中工具Jstack使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 詳解Java關(guān)鍵字final

    詳解Java關(guān)鍵字final

    今天帶大家學(xué)習(xí)Java基礎(chǔ)知識(shí),文中對(duì)關(guān)鍵字final作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Java多線程之徹底搞懂線程池

    Java多線程之徹底搞懂線程池

    熟悉 Java 多線程編程的同學(xué)都知道,當(dāng)我們線程創(chuàng)建過多時(shí),容易引發(fā)內(nèi)存溢出,因此我們就有必要使用線程池的技術(shù)了。想要詳細(xì)了解的同學(xué)可以參考閱讀本文
    2023-03-03
  • Java對(duì)象轉(zhuǎn)JSON三種常用的方法

    Java對(duì)象轉(zhuǎn)JSON三種常用的方法

    在Java中可以使用多種方式將對(duì)象轉(zhuǎn)換為JSON字符串,下面這篇文章主要給大家介紹了關(guān)于Java對(duì)象轉(zhuǎn)JSON三種常用的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 如何在java中使用SFTP協(xié)議安全的傳輸文件

    如何在java中使用SFTP協(xié)議安全的傳輸文件

    這篇文章主要介紹了如何在java中使用SFTP協(xié)議安全的傳輸文件,幫助大家更好的理解和使用JSch,感興趣的朋友可以了解下
    2020-10-10
  • 幾種常見mybatis分頁(yè)的實(shí)現(xiàn)方式

    幾種常見mybatis分頁(yè)的實(shí)現(xiàn)方式

    這篇文章主要介紹了幾種常見mybatis分頁(yè)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • JVM類加載,垃圾回收

    JVM類加載,垃圾回收

    這篇文章主要介紹了JVM的幾種垃圾回收器,文中通過示例代碼介紹的很詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 純Java代碼實(shí)現(xiàn)流星劃過天空

    純Java代碼實(shí)現(xiàn)流星劃過天空

    本文給大家介紹純java代碼實(shí)現(xiàn)流星劃過天空,包括流星個(gè)數(shù),流星飛行的速度,色階,流星大小相關(guān)變量設(shè)置。對(duì)java流星劃過天空特效代碼感興趣的朋友可以參考下本文
    2015-10-10
  • SpringBoot2零基礎(chǔ)到精通之映射與常用注解請(qǐng)求處理

    SpringBoot2零基礎(chǔ)到精通之映射與常用注解請(qǐng)求處理

    SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開發(fā)的腳手架,本篇讓我們一起學(xué)習(xí)映射、常用注解和方法參數(shù)的小技巧
    2022-03-03
  • IDEA插件指南之Mybatis?log插件安裝及使用方法

    IDEA插件指南之Mybatis?log插件安裝及使用方法

    這篇文章主要給大家介紹了關(guān)于IDEA插件指南之Mybatis?log插件安裝及使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-02-02

最新評(píng)論

子长县| 灵宝市| 绍兴县| 衡南县| 平阳县| 安远县| 阳西县| 岳阳市| 石家庄市| 酒泉市| 扶风县| 新晃| 顺平县| 且末县| 德昌县| 固阳县| 教育| 西安市| 上思县| 通城县| 莱西市| 大厂| 渝北区| 新闻| 山东| 磴口县| 秦皇岛市| 海城市| 南宫市| 石泉县| 稷山县| 大方县| 鄂伦春自治旗| 湖南省| 原阳县| 措勤县| 长葛市| 启东市| 买车| 田阳县| 武威市|