如何从易于控制和监视的JVM生成JVM?

时间:2013-01-29 12:22:25

标签: java jvm

我想从Java类跨越一个新的JVM进程。

我可以使用Runtime.getRuntime().exec(...),但这是一个非常低级别的api。

我正在寻找能够为我提供Process api的东西,比较方便一些:

MonitoredJavaProcess javaProcess = new MonitoredJavaProcess(MyMainClass.class, "-Xmx1g");
javaProcess.getGcLogStream();
javaProcess.getHeapSizeObserver();
// ...
javaProcess.waitForShutdown();

关于我正在尝试做什么的一些上下文:我正在运行JUnit一个测试套件taht启动一个嵌入式Jetty服务器并运行一些测试。这意味着测试的Jetty服务器线程和junit测试线程在同一个JVM中运行。我需要在单独的JVM上运行它们。我可以使用ant或maven或starup jetty外部的任何东西,然后针对它运行测试套件,但对我的简单场景来说听起来有点过分。

2 个答案:

答案 0 :(得分:3)

也许你的方法不正确。也许您应该考虑使用JMX来监控您的JVM?

干杯,

答案 1 :(得分:2)

你究竟想做什么。 您可以查看java.lang.ProcessBuilder它可能满足您的需求。