我正在使用某个库的两个不同版本。如果用户选择了一个对象,我将识别创建该对象的库版本。现在我需要运行与该版本相对应的代码。
问题是,两个库版本中的代码都是冗余的,每个版本仅对使用该版本创建的对象有效。我认为,结果是,我需要在运行时执行以下操作:
使用URLClassLoader可以实现吗?不知何故这样吗?
File dirVersion3= new File("lib/dirVersion3");
File dirVersion4= new File("lib/dirVersion4");
URL[] url={dirVersion4.toURL()};
ClassLoader currentThreadClassLoader = Thread.currentThread().getContextClassLoader();
URLClassLoader loader = new URLClassLoader(url, currentThreadClassLoader);
Thread.currentThread().setContextClassLoader(loader);
答案 0 :(得分:0)
我认为你有两个选择: