文档章节

java中动态加载类或者jar包

1024菜bird
 1024菜bird
发布于 2017/05/19 17:15
字数 348
阅读 63
收藏 1

简单记录:

1)一个java工程a实现特定功能打成jar包提供给其他工程b调用,不需要重启jvm,直接读取jar

2)一种可能是同一个工程不同模块,封装成jar包

3)一种可能是一个工程分多个独立子模块,定义一个相同接口,多人去实现此接口,不同人开发,每个人开发完成后打成jar,主工程只需要定义一个相同的接口,类似B工程注释部分,这样就可以相应获取到对应jar包里面类实例化的所有方法来运行。

4).还有一种类似,主工程分各个子工程,可以在住工程里面link进来子工程来调试开发,最后打包引用jar文件,类似云平台。

1.java工程a,简单一句话,生成pack.jar包放入工程b中

public class HelloWord {
        public void display()
          {
            String mes = "1111111";
            System.out.println(mes);
          }
}

2.工程b调用

public class Test {
    /**
     * @param args
     */
public static void main(String[] args) {
 try {
             URL url=new URL("file:D:/myeclipse-Insant/work-project/packjar/lib/pack.jar");
         ClassLoader  myClassLoader1 = new URLClassLoader(new URL[] { url },                                 Thread.currentThread().getContextClassLoader()); 
            Class<?> myClass1 = myClassLoader1.loadClass("com.maystar.temp.HelloWord"); 
            Object obj=myClass1.newInstance();//初始化一个实例  

            /*Process1 process=(Process1)myClass1.newInstance();
            process.display();*/
            Method method=myClass1.getMethod("display");//方法名,对应的参数类型  没参数不需要传
            method.invoke(obj, null);//执行方法
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

© 著作权归作者所有

1024菜bird
粉丝 78
博文 141
码字总数 138266
作品 0
海淀
程序员
私信 提问
ClassNotFoundException和NoClassDefFoundError的区别

正如它们的名字所说明的:NoClassDefFoundError是一个错误(Error),而ClassNOtFoundException是一个异常,在Java中错误和异常是有区别的,我们可以从异常中恢复程序但却不应该尝试从错误中恢...

一条大河波浪宽
2013/10/05
0
0
java classloader 过程

jvm classLoader architecture : a, Bootstrap ClassLoader/启动类加载器 主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作. b, Extension ClassLoader/扩......

Idiot_s_Sky
2014/01/19
0
0
Android Java虚拟机拦截技术分析

最近反编译金山毒霸,分析其广告拦截功能是如何实现的。根据金山毒霸的介绍,采用了java虚拟机拦截技术,带着好奇去研究了一下。在查看代码过程中,会看到许多被hook的Java类,例如ActivityT...

JayPark不作死
2014/02/21
0
1
Java核心机制:反射机制的原理及应用方法

一、java的核心机制 java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection): 1、Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在...

Java架构资源分享
2018/11/25
0
0
阿里P8技术心得:java反射机制的核心原理

一、java的核心机制 java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection): 1、Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在...

Java架构
2018/11/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
8
0
多线程同时加载缓存实现

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorServi......

暗中观察
昨天
2
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
2
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部