我有一个.class文件的路径,我想从正在运行的程序中实例化它。 我必须"加载"这个类但它的类路径不在我的.jar或我的项目中,它在除了它之外的文件夹中(不能使用Class.forName())。 我如何实例化.class?
答案 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
加载该类,最后创建一个实例(这里它调用一个构造函数)没有参数)。