I'm not sure how JARs are loaded exactly but you can dynamically load any class at runtime. If your interest is the classes contained inside a JAR then yes those can be loaded using a class loader. Or more specifically a JAR class loader JarClassLoader Class
If you are trying to replace a JAR the approach would probably be to replace the classes loaded from that JAR and the only way to do that is if a reference to each of those classes is "garbage collected". At that point you can load the same class from a new location.Class Unloading
Question similar to yours How Should I load Jars dynamically at run-time?