ProcessBuilder - Inicie outro processo / JVM - HowTo?

Estou escrevendo um aplicativo de rede, onde cada cliente possui um Singleton ClientManager. ParaTestando, Gostaria de criar vários clientes (cada um em sua própria VM / processo) sem iniciar o programa manualmente n-times.

As duas perguntas a seguir sobre stackoverflow já descrevem como fazer isso:

Éesta realmente a melhor maneira de iniciar uma segunda JVM a partir do código Java?Java: Executando um aplicativo Java em um processo separado

Meu código é baseado neles, mas não está funcionando:

O programa principal não continua depois que a desova é chamada.O código gerado não é executado.

Aqui está o código completo usandoProcessBuilder:

public class NewVM {
  static class HelloWorld2 {
    public static void main(String[] args) {
      System.out.println("Hello World");
      System.err.println("Hello World 2");
    }
  }
  public static void main(String[] args) throws Exception {
    startSecondJVM(HelloWorld2.class, true);
    startSecondJVM(HelloWorld2.class, false);
    System.out.println("Main");
  }
  public static void startSecondJVM(Class<? extends Object> clazz, boolean redirectStream) throws Exception {
    System.out.println(clazz.getCanonicalName());
    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, 
            clazz.getCanonicalName());
    processBuilder.redirectErrorStream(redirectStream);
    Process process = processBuilder.start();
    process.waitFor();
    System.out.println("Fin");
  }
}

O que estou fazendo errado???

Btw:

Estou usando o Eclipse.O problema de Singleton é umsimplificado exemplo. Por favor façanão sugerir a criação de uma fábrica.

Solução: HelloWorld2 não deve ser uma classe interna.

questionAnswers(2)

yourAnswerToTheQuestion