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

标签 java jvm

我想从 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/

相关文章:

java - 使用 Gson 序列化抽象类返回 null

java - setSupportActionBar(工具栏工具栏) 在我的 Material 项目中不起作用

java - AlwaysPretouch 是否会导致触摸 -Xms 或 -Xmx 内的页面?

java - 为什么使用 invokedynamic 调用 Java 8 lambda?

java - 在 CorDapp 上本地部署节点时出现异常 - 节点信息生成

java - Struts 2 jQuery Datepicker 格式问题

java - 我有 Netbeans 8.1,它仅支持 C/C++,并且支持 java。

java - Android studio 注册无法使用

java - 由于持续的 GC,强制 JVM 崩溃

java - SocketChannel : Why if I write msgs quickly the latency of each message is low, 但是当我每 30 秒写一个 msg 时延迟很高?