JAVA动态加载JAR包执行程序
入口代码
import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import dynamic.test.ICarFactory;public class hello { public static void main(String args[]) {System.out.println("Hello world");// JAR文件地址String jarName = "CarFactory.jar";ICarFactory icf=null;//命名空间 类名称String className="dynamic.test.BYDFactory";File file = new File(jarName);URL url=null;try {url = file.toURL();} catch (MalformedURLException e1) {// TODO Auto-generated catch block e1.printStackTrace();}URLClassLoader loader = new URLClassLoader(new URL[]{url});Class aClass=null;try {// 接口实例化aClass = loader.loadClass(className);} catch (ClassNotFoundException e) {// TODO Auto-generated catch block e.printStackTrace();}try {icf = (ICarFactory)aClass.newInstance();} catch (InstantiationException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch block e.printStackTrace();}icf.makeCar(); } }
接口类
package dynamic.test; public interface ICarFactory {public void makeCar();//等待实现的造车方法 }
实现类
//创建BMWFactory类,实现了ICarFactory package dynamic.test; public class BMWFactory implements ICarFactory { //实现了ICarFactory的makeCar()方法 public void makeCar() { System.out.println("BMWFactroy made a 宝马 for you"); } }
//创建BYDFactory类,实现了ICarFactory package dynamic.test; public class BYDFactory implements ICarFactory { //实现了ICarFactory的makeCar()方法 public void makeCar() { System.out.println("BYDFactroy 生产 一辆 比亚迪 for you"); } }
转载于:https://www.cnblogs.com/cwfsoft/p/3651864.html
JAVA动态加载JAR包执行程序相关推荐
- java动态加载jar文件并执行方法
在项目开发的过程中,有时候需要动态灵活的加载某个jar包并执行里面的方法的时候,我们可以使用本篇文章写得方式去动态的加载jar包而不用使用原始方式引入jar包作为lib去使用,接下来介绍如何动态加载j ...
- java动态加载jar时,jar中还有第三方jar无法加载的解决方法
java动态加载jar时,jar中还有第三方jar无法加载的解决方法 当java插件化开发时,即一个java程序在运行的情况下动态加载另一个jar,网上大多数的方法如下 public static v ...
- Java动态加载jar及class文件
经常碰到需要动态加载jar及class文件的场景.Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,但JDK仍提供了一整套方法来动态加载jar文件和class文件. 一.动态加载ja ...
- 动态加载jar包(一)
一.编写被调用的类 package com.qunar.helloworld;public class HelloWorld {public String sayHello(){return (&qu ...
- java程序动态加载jar包,并调用其中的方法
再编写Java应用程序的时候我们通常需要动态的加载jar,具体的代码如下: demo1.jar中的invoke方法: package com.amx.test; public class Test ...
- java动态打jar包_java动态加载jar包
目录结构如下. ├── main │ ├── java │ │ └── lu │ │ └── tool │ │ └── jar │ │ ├── InterfaceR ...
- java实现动态加载jar包中的class(破坏双亲委派来实现)
背景 最近在项目中在使用Drools来做规则,drools确实功能比较强大,但是学习成本也比较高,语法比较繁琐.我们项目是做的动态规则,用户可以通过上传jar包的方式来动态的再我们ruleengine ...
- 使用反射获得jar包中的类、方法、参数、返回值类型,然后动态加载jar包运行方法
其实我的需求是在系统中 测试用户导入的jar包,所有网上找了很多解决方案,踩过很多坑,再加上以前搞c++的,对java不是很熟, 这里特意记录下,算是基本满足需求了 使用反射获得jar包中的类.方法. ...
- flink sql udf jar包_Java动态加载Jar实例解析
导读:在实际项目开发中,有时会遇到需动态加载jar包的应用场景.如将Flink的UDF自定义方法制作成方法库(既打成一个Jar),在提交给Flink集群的Job中动态加载jar便可使用.下面将举一个简 ...
最新文章
- Servlet运行原理以及生命周期
- SVG关注复杂图形的网页绘制技术
- juniper防火墙(SSG and SRX)排障抓包命令
- 数据结构 - 最小堆最大堆
- a4988 脉宽要求_Allegro MicroSystems - A4988: 带转换器和过流保护的 DMOS 微步驱动器
- Tornado 自定义session,与一致性哈希 ,基于redis 构建分布式 session框架
- JS检测浏览器是否最大化
- 【《zw版·Halcon与delphi系列原创教程》 zw_halcon人脸识别
- thinkphp中的__DIR__ __ROOT__ __APP__ __MODULE__ APP_PATH LIB_PATH MODULE_PATH 等是在哪里定义的?...
- Sublime Text 插件 【转】
- Apache Flink SQL概览
- 跨域问题(Vue开发中遇到的跨域问题)以及解决方法
- java求100以内的素数
- 一元三次方程求根公式详细逐步推导
- 为什么sqlserver创建存储过程成功,却找不到这个存储过程呢
- 聆思CSK6开发工具使用详解(支持Zephyr开发)
- 试用HBuilder编辑H5移动开发
- MSGraphMailbag - 复制/移动 SharePoint Online 中的文件和文件夹
- 一位从事量化交易的实战者,手把手带你入门量化交易!
- 百度apollo 汽车环境感知 自动驾驶 激光雷达slamtec a1m8-r5 三角测距 双目相机