Java ProcessBuilder to run multiple Java processes

Is it possible to create multiple different JVMs with the same Main.class, arguments and VM parameters? Can this be done with ProcessBuilder?

+3


source to share


1 answer


Here's a basic example of using a process that starts 10 different JVM processes:



   for (int i = 0; i < 10; i++) {
            new Thread(new Runnable() {

                public void run() {
                    try {
                        //start a new jvm with 256m of memory with the MyClass passing 2 parameters
                        String cmd = "java -Xmx256M -cp myjar.jar com.mymainclass.MyClass par1 par2";
                        Process p = Runtime.getRuntime().exec(cmd);
                        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                        String line = br.readLine();
                        while (line != null) {
                            line = br.readLine();
                        }
                        br = new BufferedReader(new InputStreamReader(p.getErrorStream()));
                        line = br.readLine();
                        while (line != null) {
                            line = br.readLine();
                        }
                    } catch (IOException e) {
                    }

                }
            }).start();
        }

      

+2


source







All Articles