Java ProcessBuilder启动多个Java进程

Java ProcessBuilder启动多个Java进程,java,multiprocessing,processbuilder,Java,Multiprocessing,Processbuilder,如果给定相同的Main.class、参数和VM选项,我可以生成多个不同的JVM吗? 是否可以使用ProcessBuilder执行此操作?下面是一个使用进程启动10个不同JVM进程的基本示例: for (int i = 0; i < 10; i++) { new Thread(new Runnable() { public void run() { try {

如果给定相同的Main.class、参数和VM选项,我可以生成多个不同的JVM吗?
是否可以使用ProcessBuilder执行此操作?

下面是一个使用进程启动10个不同JVM进程的基本示例:

   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();
        }
for(int i=0;i<10;i++){
新线程(newrunnable()){
公开募捐{
试一试{
//启动一个具有256m内存的新jvm,MyClass传递2个参数
String cmd=“java-Xmx256M-cp myjar.jar com.mymainclass.MyClass par1 par2”;
进程p=Runtime.getRuntime().exec(cmd);
BufferedReader br=新的BufferedReader(新的InputStreamReader(p.getInputStream());
String line=br.readLine();
while(行!=null){
line=br.readLine();
}
br=新的BufferedReader(新的InputStreamReader(p.getErrorStream());
line=br.readLine();
while(行!=null){
line=br.readLine();
}
}捕获(IOE异常){
}
}
}).start();
}

问得好,我现在也太好奇了。我在这里和那里找到了一些示例代码,但没有找到真正有效的:(使用“不同的JVM”您是指同一JVM安装的多个实例还是JVM 1.6、JVM 7、JVM 8等?同一JVM安装的多个实例。因此,我不能利用我在同一个jar中执行所有这些操作的事实,以便不必以这种方式引用它并复制所有环境参数和参数?您可能应该使用为了防止从Java执行外部进程时出现常见错误。@KaterinaA。该进程是一个全新的环境,它不会使用当前环境中的任何内容……打开提示符并输入de命令也是如此