我想从 Java 类跨越一个新的 JVM 进程。
我可以使用 Runtime.getRuntime().exec(...)
但这是一个非常低级的 api。
我正在寻找可以将 Process
api 包装成更方便的东西的东西,例如:
MonitoredJavaProcess javaProcess = new MonitoredJavaProcess(MyMainClass.class, "-Xmx1g");
javaProcess.getGcLogStream();
javaProcess.getHeapSizeObserver();
// ...
javaProcess.waitForShutdown();
关于我正在尝试做的事情的一些背景信息:我正在运行 JUnit 测试套件,它会启动一个嵌入式 Jetty 服务器并针对它运行一些测试。这意味着被测试的 Jetty 服务器线程和 junit 测试线程在同一个 JVM 中运行。我需要在单独的 JVM 中运行它们。我可以使用 ant 或 maven 或任何外部启动 jetty ,然后针对它运行测试套件,但对于我的简单场景来说,这听起来有点矫枉过正。
最佳答案
也许您的方法不对。也许你应该考虑使用 JMX改为监视您的 JVM?
干杯,
关于java - 如何从易于控制和监视的 JVM 生成 JVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582781/