Usually, when you're not confident about how class loading works, it's not a good idea to have multiple JARs containing classes with the same FQDN. This is because JARs aren't logical units in terms of class loading and they aren't versioned (don't get fooled by filenames like mylibrary-1.0.0.jar, those are only file names), plus class loading happens "secretly" in the background and without having explicit control over it you can't be sure which physical files will get loaded when you refer to a class. This could lead to a host of strange errors ranging from silent errors through NullPointerExceptions to NoClassDefFoundErrors.
Under normal circumstances, ie. when each class is present only once, this means no problem because when you refer to a class, the class loader will find only one instance of that class on the class path so it can be considered deterministic.
In your case, an easy solution would be simply replacing the original JAR with the modified one where the modified has all the classes the original has (and they are backwards-compatible too). Of course, this could possible mean that you need to slightly change your build process, for example installing your version of zookeeper into your local Maven repository and use that version.
A more advanced (and more interesting) solution could be using OSGi (or other class loader-magic frameworks). OSGi works by adding extra package metadata to the manifest where you can specify bundle ID-s and version numbers. This allows loading multiple classes with the same FQDN but with different version numbers.
While Eclipse and other IDEs often offer the ability to declare the order of imports, this isn't the best solution because they rely on they have control over the class loading mechanism. This means, for example, when you build a runnable JAR and run it outside your IDE, your application might start failing because they have little to no control over class loading happening outside of them.