如何从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文件动态加载类了吧。