What i understood from your question is:
You can not put the jar containing the driver classes in the application classpath. So, you are creating one classloader containing the location of the jar and instantiate the driver using this classloader.
However, you are not able to set the same classloader while doing:
Is my understanding correct?
If yes, then you do not need to use DriverManager.getConnection() for drivers loaded by custom classloaders.
Instead you can use:
This thread has more details on which properties to pass to the connect method.