全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java动态添加外部jar包到classpath的实例详解

java动态添加外部jar包到classpath的实例详解

前言:

  在项目开发过程中我们有时候需要动态的添加外部jar包,但是具体的业务需求还没有遇到过,因为如果动态添加外部jar包后,我们就需要修改业务代码,而修改代码就需要重新启动服务,那样好像就没有必要动态添加外部jar包了,怎么样才能不重新启动服务器就可以使用最新的代码我没有找到方法,如果各位知道的话给我点建议,回归主题,实现动态添加外部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(); 
    } 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java动态添加外部jar包到classpath  # Java  # 动态添加jar包  # maven引入本地jar包运行报错java.lang.NoClassDefFoundError解决  # java如何反编译jar包并修改class文件重新打包  # IDEA如何对单个的java class文件打成jar包  # 重新启动  # 还没有  # 如有  # 就没  # 希望能  # 有必要  # 谢谢大家  # 没有找到  # 我点  # 遇到过  # 就可以  # 过程中  # 包了  # 方法如下  # 怎么样才能  # 疑问请  # testDynamicBean  # filePath  # HashMap  # Class 


相关文章: 历史网站制作软件,华为如何找回被删除的网站?  全景视频制作网站有哪些,全景图怎么做成网页?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  香港网站服务器数量如何影响SEO优化效果?  宝塔新建站点为何无法访问?如何排查?  如何用IIS7快速搭建并优化网站站点?  建站之星CMS五站合一模板配置与SEO优化指南  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  建站之星免费版是否永久可用?  建站之星24小时客服电话如何获取?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  如何快速搭建响应式可视化网站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  建站之星免费模板:自助建站系统与智能响应式一键生成  css网站制作参考文献有哪些,易聊怎么注册?  如何做网站制作流程,*游戏网站怎么搭建?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  C#如何使用XPathNavigator高效查询XML  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  javascript中对象的定义、使用以及对象和原型链操作小结  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何零基础开发自助建站系统?完整教程解析  实现点击下箭头变上箭头来回切换的两种方法【推荐】  定制建站哪家更专业可靠?推荐榜单揭晓  网站网页制作专业公司,怎样制作自己的网页?  个人网站制作流程图片大全,个人网站如何注销?  小型网站建站如何选择虚拟主机?  建站之星北京办公室:智能建站系统与小程序生成方案解析  东莞专业制作网站的公司,东莞大学生网的网址是什么?  深圳网站制作案例,网页的相关名词有哪些?  常州企业建站如何选择最佳模板?  如何在IIS中新建站点并解决端口绑定冲突?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何快速生成ASP一键建站模板并优化安全性?  建站主机服务器选购指南:轻量应用与VPS配置解析  南宁网站建设制作定制,南宁网站建设可以定制吗?  孙琪峥织梦建站教程如何优化数据库安全?  建站主机与虚拟主机有何区别?如何选择最优方案?  如何快速搭建二级域名独立网站?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  如何在IIS7上新建站点并设置安全权限?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Swift中swift中的switch 语句  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何选择高性价比服务器搭建个人网站?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何在阿里云高效完成企业建站全流程? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。