It is the case that the general class loader will take the path the comes first on the class path, and evidently A.jar comes first, before B.jar.
String someUniqueResourceInBJar = "...";
URL url = B.class.getResource(someUniqueResourceInBJar);
url = new URL(url.getPath().replaceFirst(someUniqueResourceInBJar + "$", "")
+ "META-INF/MANIFEST.MF";
url.openStream();
The url will be something like "jar:file://.../B.jar!META-INF/MANIFEST.MF".
Alternatively getting the class URL:
URL url = b.class.getProtectionDomain().getCodeSource().getLocation();