一、编写被调用的类

package com.qunar.helloworld;public class HelloWorld {public String sayHello(){return ("helloworld");}
}

使用eclipse的export功能导出jar包,放在/Users/liqiu/Documents/workspace/HelloWorld.jar

二、编写调用jar包的类

package com.qunar.studyspring.javajar;import java.net.URL;
import java.net.URLClassLoader;
import java.lang.reflect.Method;public class JavaJar {public String doJar() {try {URL url = new URL("file:/Users/liqiu/Documents/workspace/HelloWorld.jar"); // 这里需要重点看URLClassLoader用法,URLClassLoader loader = new URLClassLoader(new URL[] { url }); // URL跟我们日常见到的格式用法不太一样Class c = loader.loadClass("com.qunar.helloworld.HelloWorld"); // 在上面找到并加载jar包后,可以通过此Object myObject = c.newInstance(); // 函数加载某个类,并使用 newInstance// 生成一个新的对象Method m = c.getDeclaredMethod("sayHello"); // getDeclaredMethod()方法可以获得// 指定名字的方法m.setAccessible(true); // setAccessible方法使上面得到的方法可用
            System.out.println(m.invoke(myObject)); // 由于sayHello方法返回一个String// 使用m.invoke去调用方法m 也就是sayHello} catch (Exception ex) {System.out.println(ex);}return "ddddd";}
}

三、编写测试方法

package com.qunar.studyspring;import org.junit.Test;import com.qunar.studyspring.javajar.JavaJar;public class JarTest {@Testpublic void sayHello(){JavaJar javajar = new JavaJar();String ss = javajar.doJar();System.out.println(ss);}
}

四、测试结果

helloworld
ddddd

动态加载jar包(一)相关推荐

  1. java程序动态加载jar包,并调用其中的方法

    再编写Java应用程序的时候我们通常需要动态的加载jar,具体的代码如下: demo1.jar中的invoke方法: package com.amx.test;   public class Test ...

  2. java实现动态加载jar包中的class(破坏双亲委派来实现)

    背景 最近在项目中在使用Drools来做规则,drools确实功能比较强大,但是学习成本也比较高,语法比较繁琐.我们项目是做的动态规则,用户可以通过上传jar包的方式来动态的再我们ruleengine ...

  3. java动态打jar包_java动态加载jar包

    目录结构如下. ├── main │   ├── java │   │   └── lu │   │   └── tool │   │   └── jar │   │   ├── InterfaceR ...

  4. 使用反射获得jar包中的类、方法、参数、返回值类型,然后动态加载jar包运行方法

    其实我的需求是在系统中 测试用户导入的jar包,所有网上找了很多解决方案,踩过很多坑,再加上以前搞c++的,对java不是很熟, 这里特意记录下,算是基本满足需求了 使用反射获得jar包中的类.方法. ...

  5. JAVA动态加载JAR包执行程序

    入口代码 import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.ne ...

  6. flink sql udf jar包_Java动态加载Jar实例解析

    导读:在实际项目开发中,有时会遇到需动态加载jar包的应用场景.如将Flink的UDF自定义方法制作成方法库(既打成一个Jar),在提交给Flink集群的Job中动态加载jar便可使用.下面将举一个简 ...

  7. java动态加载jar文件并执行方法

    在项目开发的过程中,有时候需要动态灵活的加载某个jar包并执行里面的方法的时候,我们可以使用本篇文章写得方式去动态的加载jar包而不用使用原始方式引入jar包作为lib去使用,接下来介绍如何动态加载j ...

  8. android动态jar,Android动态加载Jar(包含第三方依赖Jar)

    最近项目有一个需求,需要根据用户需求动态加载APP内某功能模块,且当该部分功能模块代码有变动,只需更新该功能JAR,无需更新整个APK,基于这个需求,决定采用动态加载Jar的方式去实现,于是各种查资料 ...

  9. [转]Android动态加载jar/dex

    本文转自:http://www.cnblogs.com/over140/archive/2011/11/23/2259367.html 前言 在目前的软硬件环境下,Native App与Web App ...

最新文章

  1. 微信小程序中的tabBar设置
  2. 知乎热议:28岁郭宇期权过亿,彪悍从字节退休,旅居日本开温泉酒店
  3. openfoam安装中出现allmake error_深入理解 OpenFOAM 环境与编译过程
  4. date类before()方法的主要作用是_黄精的主要作用及中医食疗方法
  5. MySQL(九)插入、更新和删除
  6. B. Alyona and a tree(dsu on tree + bit)
  7. I2C设备驱动编写,struct i2c_device_id,struct i2c_driver,i2c_add_driver,i2c_register_board_info
  8. 阿里强化学习入选MIT十大突破 “新技术”
  9. php如何设计一个网站,如何设计一个优质的外贸网站?
  10. 学习VC与C++先后顺序
  11. html 怎么调用js中函数返回值,JavaScript 函数
  12. spark学习7之IDEA下搭建Spark本地编译环境并上传到集群运行
  13. H5跳转支付宝小程序
  14. windows系统自带cmd命令下载文件(类似linux的wget下载文件)
  15. 自适应分级轮询超时机制
  16. dangdang.com的故事
  17. 卸载360企业版密码
  18. java aes iv_java AES加密解密
  19. 快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
  20. mysql(8.0.28)设置开机自启动

热门文章

  1. linux之删除vi残留的swp文件
  2. java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection 解决
  3. 算法优化策略之“中途相遇”算法思想
  4. 9.1 正则介绍_grep(上)
  5. Android -- ViewGroup源码分析+自定义
  6. javascript内存泄露
  7. Golang go 命令
  8. Linux 命令(47)—— file 命令
  9. fdisk -l查看硬盘分区信息及硬盘分区介绍
  10. webpack2中postcss-loader报错noconfigfound