Java ProcessBuilder在同一项目中启动main方法

Java ProcessBuilder在同一项目中启动main方法,java,processbuilder,Java,Processbuilder,我有一个Java类需要启动一个子进程。子进程是在同一项目中包含main()方法的类。我有: Class clazz = RunMQCommands.class; String separator = System.getProperty("file.separator"); String classpath = System.getProperty("java.class.path"); String path = System.getProperty("java.home"); Proce

我有一个Java类需要启动一个子进程。子进程是在同一项目中包含main()方法的类。我有:

Class clazz = RunMQCommands.class;

String separator = System.getProperty("file.separator");
String classpath = System.getProperty("java.class.path");
String path = System.getProperty("java.home");

ProcessBuilder pb = 
        new ProcessBuilder(path, "-cp", 
        classpath, 
        clazz.getCanonicalName());
pb.redirectErrorStream(true);
Process process = pb.start();
int retCode = process.waitFor();
这给了我一个机会

CreateProcess error=5, Access is denied

这是我第一次涉足ProcessBuilder。我做错了什么?我可以很好地启动外部事物(例如新的ProcessBuilder(“记事本”)

您的
path
变量的值如下

/usr/share/Java/1.8/jre
这不是一个可执行文件

找到可执行文件
java
的位置,并将其值赋给
path
变量

您的
ProcessBuilder
应该如下所示

ProcessBuilder pb = 
    new ProcessBuilder("/usr/share/Java/1.8/jre/java", "-cp", 
    classpath, 
    clazz.getCanonicalName());