我的Java程序是否可以在调试模式下启动第二个JVM(通过ProcessBuilder,例如运行javaw.exe
),以便它出现在Eclipse的调试窗口中?
若然,怎么样?
答案 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中设置的断点的全面支持,可变内省等。如果这是你正在寻找的,你应该试一试。