2
是否有可能在运行时控制加载类的顺序?例如:我有两个Jaras类的SomeClass类:SomeLibrary-1.0.jar和SomeLibrary-2.0.jar。该类具有返回当前版本的SomeLibrary的静态方法getVersion()。我使用找到的解决方案here在运行时修改类路径。现在,当我运行代码:
在运行时修改类路径 - 控制类加载顺序
public static void main(String[] args) {
ClassPathHacker.addFile("SomeLibrary-1.0.jar");
ClassPathHacker.addFile("SomeLibrary-2.0.jar");
System.out.println(SomeClass.getVersion());
}
我希望看到输出2.0
但1.0
代替。这是因为类加载器使用类路径中找到的第一个类。是否有可能控制已加载的类或已覆盖的类的加载?
你需要使用类似OSGI来处理不同版本的罐子在一个应用程序。 – Augusto 2011-02-14 11:20:13
@aioobe:Pawel已经提到他已经看到你发布的链接,但没有找到解决方案。点击标有`here`的链接。 – 2011-02-14 11:25:29