使用反射从.class文件实例化Java类

时间:2016-04-06 13:37:36

标签: java reflection

我有一个.class文件的路径,我想从正在运行的程序中实例化它。 我必须"加载"这个类但它的类路径不在我的.jar或我的项目中,它在除了它之外的文件夹中(不能使用Class.forName())。 我如何实例化.class?

1 个答案:

答案 0 :(得分:4)

您可以按下一步继续:

File myFolder = new File("myfolder");
URLClassLoader classLoader = new URLClassLoader(new URL[]{myFolder.toURI().toURL()}, Thread.currentThread().getContextClassLoader());
Class<?> myClass = Class.forName("my.package.Myclass", true, classLoader);
Myclass obj = (Myclass)myClass.newInstance();

首先使用上下文URLClassLoader作为父项创建Classloader的实例,然后使用这个新的ClassLoader加载该类,最后创建一个实例(这里它调用一个构造函数)没有参数)。