java / Eclipse:在Debug模式下启动一个新的JVM

时间:2011-04-19 14:26:00

标签: java eclipse debugging jvm

我的Java程序是否可以在调试模式下启动第二个JVM(通过ProcessBuilder,例如运行javaw.exe),以便它出现在Eclipse的调试窗口中?

若然,怎么样?

2 个答案:

答案 0 :(得分:7)

实现您(可能)想要的可能方法:启用第二个jvm进行远程调试。据我所知,你可以让jvm等到远程调试器挂钩到会话。然后,在生成“child jvm”之后,在eclipse中启动一个远程调试会话。

This is the set of parameters for a classic VM

java -Xdebug -Xnoagent -Djava.compiler=NONE 
     -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 ...

suspend=y告诉jvm等待调试器,5005是本例中的端口)

Starting from JavaSE 1.5, these were replaced with a standardized parameter

java -agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y

答案 1 :(得分:3)

如果你正在使用Eclipse插件,你可以使用Eclipse的机制来启动一个新的应用程序,使用DebugUITools,基本上

org.eclipse.debug.core.DebugPlugin.launch(configuration, "debug");

我曾经用它在调试模式下启动应用程序,它按预期工作,包括对eclipse中设置的断点的全面支持,可变内省等。如果这是你正在寻找的,你应该试一试。