我正在尝试按照此处所示的方法通过代码在单独的JVM上启动新进程:Executing a Java application in a separate process
我正在使用的代码如下(摘自上述问题):
public static int exec(Class klass) throws IOException, InterruptedException
String javaHome = System.getProperty("java.home");
String javaBin = javaHome +
File.separator + "bin" +
File.separator + "java";
String classpath = System.getProperty("java.class.path");
String className = klass.getName();
ProcessBuilder builder = new ProcessBuilder(javaBin,"-cp",classpath,className);
Process process = builder.inheritIO().start();
process.waitFor();
return process.exitValue();
......其中klass
是我要启动的类。这对于正常的Java进程是可行的,但问题是我正在尝试启动JavaFX应用程序,并且上面的代码生成以下错误:
Error: JavaFX runtime components are missing, and are required to run this application
因此,要添加JavaFX模块,我尝试在builder
的声明中包括--module-path和--add-modules命令,甚至尝试复制和粘贴整个执行命令,并且一直在获取该信息。其他错误:
Unrecognized option: (command string with modules)
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
我该如何解决?
让我知道是否需要详细信息。