java 反射加载E盘上的.class文件
引入依赖:
<dependency>
<groupId>org.xeustechnologies</groupId>
<artifactId>jcl-core</artifactId>
<version>2.8</version>
</dependency>
/**
* JarClassLoader反射
* path: E:\\classes\\com\\xwl\\hardcommon\\channel\\tcp\\NettyTcpServer.class
* name: com.xwl.hardcommon.channel.tcp.NettyTcpServer.class
* version: v0
*/
public void reflection(String path, String name, String version){
try {
JarClassLoader jcl = new JarClassLoader();
jcl.add("E:\\classes");
ProxyProviderFactory.setDefaultProxyProvider(new CglibProxyProvider());
JclObjectFactory factory = JclObjectFactory.getInstance();
Object object = factory.create(jcl, name);
System.out.println(object);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
动态反射加载class文件
注意:
1. 当硬盘上的文件和idea的class同时存在时, 加载硬盘上的文件
2. 当硬盘文件不存在时, 加载idea的class的文件
3. 都不存在时,抛出类找不到异常