이것은 나의 own previous question에 대한 후속 조치이며, 나는 이것을 묻는 것이 당혹 스럽다.하지만 어쨌든 : 시스템 독립적 인 방식으로 독립형 Java 프로그램에서 두 번째 JVM을 시작하는 방법은 무엇입니까? JAVA_HOME과 같은 env 변수는 현재 실행중인 JRE와 다른 JRE를 가리킬 수 있으므로 의존하지 않아도됩니다. 실제로 작동하지만 조금 어색한 느낌 다음 코드를 내놓았다 :* 자바 코드에서 두 번째 JVM을 시작하는 가장 좋은 방법은 * this *입니까?
public static void startSecondJVM() throws Exception {
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,
AnotherClassWithMainMethod.class.getName());
Process process = processBuilder.start();
process.waitFor();
}
또한, 현재 실행중인 JVM이 다른 매개 변수와 함께 시작되었을 수 있습니다 (-D, -X ... .. .) 두 번째 JVM은 알지 못할 것입니다.
코드가이 응답에서 가져온 것처럼 보입니다. http://stackoverflow.com/a/723914/3520484. – Mark