Как сказал Джон Скит (и вам действительно стоит послушать человека с 327k!), Не делайте этого.Но если вы должны ...
Предполагая, что ваши классы выглядят как
public class TestClass {
public static void display() {
System.out.println("In A.jar ");
}
}
и скомпилированы в target / A.jar, и что-то подобное происходит с TestClass в B.jar, вы можете создатьОсновной класс в вашем собственном пакете, как это:
public class Main {
public static void main(String[] args) throws MalformedURLException, IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, ClassNotFoundException {
URL urlA = new URL("file:target/A.jar");
URL urlB = new URL("file:target/B.jar");
URLClassLoader clA = new URLClassLoader(new URL[] { urlA });
URLClassLoader clB = new URLClassLoader(new URL[] { urlB });
clA.loadClass("TestClass").getMethod("display", (Class<?>[]) null).invoke(null, (Object[]) null);
clB.loadClass("TestClass").getMethod("display", (Class<?>[]) null).invoke(null, (Object[]) null);
}
}
, и вы получите
В A.jar
В B.jar