If you need to deploy a runnable jar file that contains your complete application, then you have to create a big executable self-contained jar file. If the target environment does not contain the libraries you require, then you have no choice. Unless you use docker or some other type of deployment container that already has the various components you need. I notice that most environments these days are using some Docker style environment. I guess that means that the jars you need will already be there and the deployment tool whatever it is will set up the proper class path … In that case you would not have a normal big fat executable jar file; just your classes.