У меня есть 3 проекта Java A, B и C.
B - это дополнение к A. A и B зависят от проекта C для некоторых классов.
Теперь в проекте A, когда я использую URLClassLoader, следующим образом:
URLClassLoader ucl = new URLClassLoader(urls); //urls are paths to some classes in B
Теперь, когда я использую эти ucl, когда я вызываю некоторые методы в B, это дает мне Исключение определения класса не найдено . Это для класса, который является C.
Теперь, когда я использую ClassLoader следующим образом:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URLClassLoader ucl = new URLClassLoader(urls, classLoader);
Это прекрасно работает, когда я вызываю методы в B.
Мой вопрос:
1) Когда я делаю это первым способом, какой ClassLoader используется? Я прочитал JavaDocs, но не смог найти ничего, что я мог бы объяснить сам.
2) Есть ли способ получить ClassLoader, который будет специфичен для проекта B, который я могу каким-либо образом использовать, чтобы я не столкнулся с какими-либо проблемами с зависимостями?
Спасибо за любую помощь.