Ich habe mir alle benötigten Jars immer in mein App-Verzeichnis gelegt und den CLASSPATH auf dieses gesetzt. Dies hat auch den Vorteil, dass ich für jede App ggf. unterschiedliche Versionen eines Jar verwenden kann, z.B. eine Test- und eine Echtversion.

Und eine gemeinsame JVM für unterschiedliche Apps gibts ja nicht (oder macht keinen Sinn). Es wird für jeden RUNJVM (oder via QSH "java ...") immer eine neue JVM gestartet.
Somit bringt das Ändern einer globalen CLASSPATH-Variable wirklich nichts, da die JVM als Job eine Kopie bekommt.