Est *ce* vraiment la meilleure façon de démarrer une deuxième JVM à partir du code Java?

C'est un suivi à mon propre question précédente et je suis un peu gêné de demander à cet... Mais de toute façon: comment voulez-vous commencer une deuxième JVM autonome à partir d'un programme Java dans un système de manière indépendante? Et sans s'appuyer sur, par exemple, une variable env comme JAVA_HOME qui pourraient pointer vers un autre JRE que celui qui est actuellement en cours d'exécution. Je suis venu avec le code suivant qui fonctionne réellement, mais se sent juste un peu maladroit:

public static void startSecondJVM() throws Exception {
    String separator = System.getProperty("file.separator");
    String classpath = System.getProperty("java.class.path");
    String path = System.getProperty("java.home")
                + separator + "bin" + separator + "java";
    ProcessBuilder processBuilder = 
                new ProcessBuilder(path, "-cp", 
                classpath, 
                AnotherClassWithMainMethod.class.getName());
    Process process = processBuilder.start();
    process.waitFor();
}

Également, en cours d'exécution de la JVM peut avoir été commencé avec quelques autres paramètres (-D, -X..., ...) que le deuxième JVM ne sait pas sur.