如何从jar文件动态加载类

来源:爱站网时间:2021-12-02编辑:网友分享
如果我有一个包含许多类的jar文件,如何获取类以及在运行时创建实例。具体有哪些实例,要怎么操作,爱站技术小编用一篇文章告诉你答案。希望能帮到你们。

问题描述


如果我有一个包含许多类的jar文件,如何获取类以及在运行时创建实例。在这段代码中,我不理解Class.forName行,MyClass是包含jar文件的类,还是加载jar文件后将创建的类?

URLClassLoader child = new URLClassLoader(
        new URL[] {myJar.toURI().toURL()},
        this.getClass().getClassLoader()
);
Class classToLoad = Class.forName("com.MyClass", true, child);
Method method = classToLoad.getDeclaredMethod("myMethod");
Object instance = classToLoad.newInstance();
Object result = method.invoke(instance);

思路:


[Class.forName加载一个类。

第一个参数是类的(规范)名称。在这种情况下,您尝试加载类com.MyClass

第二个参数指定应在该点初始化类(初始化static变量并运行static块。

第三个参数是将要从中加载类的ClassLoader。在您的情况下,它将尝试从myJar中找到该类,但是如果在那里找不到该类,它将尝试从已加载调用类的同一ClassLoader中加载该类。

以上内容就是爱站技术频道小编为大家分享的如何从jar文件动态加载类,看完以上分享之后,大家应该都知道要如何从jar文件动态加载类了吧。

上一篇:怎么使用Spark Java比较两个Spark数据帧的Spark SQL查询

下一篇:JavaFX-禁用TableView列交换要怎么办

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载