Java 使用JUnit测试中的JDWP进行远程调试时出错

Java 使用JUnit测试中的JDWP进行远程调试时出错,java,eclipse,remote-debugging,jdwp,Java,Eclipse,Remote Debugging,Jdwp,我使用的是EclipseJuno w/Maven,有一个JUnit测试,它使用Jemmy启动另一个Java应用程序,并通过事件队列对其运行自动测试。由于要测试的应用程序的局限性,并且我们希望运行应用程序的多个实例,所以它必须在自己的进程中运行 因此,我运行JUnit测试的主类设置环境,然后通过ProcessBuilder创建一个进程,并执行该进程以在同一进程/jvm中生成Jemmy worker&target应用程序 我的问题是,我想调试生成的进程,但按照所有其他Eclipse远程调试指南,我似

我使用的是EclipseJuno w/Maven,有一个JUnit测试,它使用Jemmy启动另一个Java应用程序,并通过事件队列对其运行自动测试。由于要测试的应用程序的局限性,并且我们希望运行应用程序的多个实例,所以它必须在自己的进程中运行

因此,我运行JUnit测试的主类设置环境,然后通过ProcessBuilder创建一个进程,并执行该进程以在同一进程/jvm中生成Jemmy worker&target应用程序

我的问题是,我想调试生成的进程,但按照所有其他Eclipse远程调试指南,我似乎无法这样做。我的processbuilder看起来像这样

ProcessBuilder builder = new ProcessBuilder(
                javaBin,
                "-Xmx512M",
                "-Xdebug",
                "-Xrunjdwp:transport=dt_socket,address=8002,server=y,suspend=y",
                "-cp", classpath, "-Djava.library.path=./native", "-D"
                        + PID_PROP + "=" + newPid, MyJemmyTestHarness.class
                        .getCanonicalName());
无论我指定哪个端口,我都会得到相同的错误

ERROR: transport error 202: bind failed: Address already in use
我尝试了几十个端口,我知道这些端口没有使用,processbuilder只是拒绝打开JDWP端口。因此,我认为我在如何做这件事上有一个系统性的问题,但我在这方面不是很有经验。我几乎完全遵循了远程调试指南,例如:


然而,地址已在使用中的错误仍然存在。有什么想法吗?

当您实际从命令提示符运行这些命令时,您会看到什么?当我选择运行(vs调试)我的封装junit项目时,我会得到相同的结果。它也有同样的错误。你的意思是实际上将它构建到jar并通过命令行运行吗?我的意思是实际上从命令提示符调用JVM。