You install the JVM once and rarely upgrade it.
You build and distribute your Java apps as fat jars (meaning, all dependencies bundled.)
This is a solved problem.
You install the JVM once and rarely upgrade it.
You build and distribute your Java apps as fat jars (meaning, all dependencies bundled.)