Можно ли контролировать порядок загрузки классов во время выполнения?Например: у меня есть класс SomeClass, который находится в двух jaras: SomeLibrary-1.0.jar и SomeLibrary-2.0.jar.У класса есть статический метод getVersion (), который возвращает текущую версию SomeLibrary.Я использую найденное решение здесь для изменения пути к классам во время выполнения.Теперь, когда я запускаю код:
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
.Это потому, что загрузчик классов использует первый класс, найденный в пути к классам.Можно ли управлять механизмом загрузки загруженных классов или уже загруженным классом перезаписи?