使用JUnit测试中的JDWP进行远程调试错误

时间:2014-01-27 10:13:55

标签: java eclipse remote-debugging jdwp

我正在使用带有Maven的Eclipse Juno并进行JUnit测试,该测试使用Jemmy启动另一个Java应用程序并通过事件队列对其进行自动测试。由于正在测试的应用程序的局限性,并且我们希望运行应用程序的多个实例,因此必须在其自己的进程中运行。

所以主要的类我运行我的JUnit测试来设置环境,然后通过ProcessBuilder创建一个进程,并执行该过程以产生一个Jemmy worker&目标应用程序在同一进程中/ jvm。

我的问题是我想调试生成的进程,而且我似乎无法在所有其他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

我已经尝试过几十个端口,我知道这些端口没有被使用,并且流程构建器只是拒绝启动JDWP端口打开。所以我认为我有一个系统性的问题,我试图这样做,但我在这方面不是很有经验。我已经按照远程调试指南几乎到了这样的字母:

Remote debugging a Java application http://javarevisited.blogspot.nl/2011/02/how-to-setup-remote-debugging-in.html

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

0 个答案:

没有答案