入口代码

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包执行程序相关推荐

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

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

  2. java动态加载jar时,jar中还有第三方jar无法加载的解决方法

    java动态加载jar时,jar中还有第三方jar无法加载的解决方法 当java插件化开发时,即一个java程序在运行的情况下动态加载另一个jar,网上大多数的方法如下 public static v ...

  3. Java动态加载jar及class文件

    经常碰到需要动态加载jar及class文件的场景.Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,但JDK仍提供了一整套方法来动态加载jar文件和class文件. 一.动态加载ja ...

  4. 动态加载jar包(一)

    一.编写被调用的类 package com.qunar.helloworld;public class HelloWorld {public String sayHello(){return (&qu ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Servlet运行原理以及生命周期
  2. SVG关注复杂图形的网页绘制技术
  3. juniper防火墙(SSG and SRX)排障抓包命令
  4. 数据结构 - 最小堆最大堆
  5. a4988 脉宽要求_Allegro MicroSystems - A4988: 带转换器和过流保护的 DMOS 微步驱动器
  6. Tornado 自定义session,与一致性哈希 ,基于redis 构建分布式 session框架
  7. JS检测浏览器是否最大化
  8. 【《zw版·Halcon与delphi系列原创教程》 zw_halcon人脸识别
  9. thinkphp中的__DIR__ __ROOT__ __APP__ __MODULE__ APP_PATH LIB_PATH MODULE_PATH 等是在哪里定义的?...
  10. Sublime Text 插件 【转】
  11. Apache Flink SQL概览
  12. 跨域问题(Vue开发中遇到的跨域问题)以及解决方法
  13. java求100以内的素数
  14. 一元三次方程求根公式详细逐步推导
  15. 为什么sqlserver创建存储过程成功,却找不到这个存储过程呢
  16. 聆思CSK6开发工具使用详解(支持Zephyr开发)
  17. 试用HBuilder编辑H5移动开发
  18. MSGraphMailbag - 复制/移动 SharePoint Online 中的文件和文件夹
  19. 一位从事量化交易的实战者,手把手带你入门量化交易!
  20. 百度apollo 汽车环境感知 自动驾驶 激光雷达slamtec a1m8-r5 三角测距 双目相机

热门文章

  1. 举例说明TCP/IP
  2. python零基础学难吗_零基础学习Python难吗?要怎么学Python才是最有效的?
  3. IPv4的路由选择计算步骤
  4. 开源GIS(十一)——openlayers中加载离线标准与自定义切片(深度好文)
  5. 在Windows 7下安装和配置MonoGame
  6. Memcached 集群架构方面的问题
  7. 游戏程序中的骨骼插件
  8. IOCP编程之基本原理
  9. matlab与r语言函数对照表,R语言与matlab循环时间对比
  10. java工程如何使用ivew_vue+iview搭建项目