如何远程调试java应用程序并将端口转发到虚拟机?

时间:2016-01-19 16:29:45

标签: java debugging vagrant remote-debugging portforwarding

我想在启用调试的主机(Windows 7)中启动一个java应用程序

-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

然后我想通过vagrant启动虚拟机并将端口5005转发到来宾计算机。

在来宾计算机上,我想连接到端口5005并调试应用程序。

config.vm.network "forwarded_port", guest: 5005, host: 5005, protocol: 'tcp'
config.vm.network "forwarded_port", guest: 5005, host: 5005, protocol: 'udp'

问题是,一旦虚拟机运行,java应用程序会在启动时立即崩溃。当我将调试端口更改为除5005以外的其他应用程序启动时。

1 个答案:

答案 0 :(得分:1)

如评论中所述,您不应该在运行JVM的计算机上转发端口,而是需要在该端口上接收流量的Java App,并且启动失败的可能性很大,因为端口已经被转发。

在另一端转发也不是必需的,您只需在< target>上调试:< port>代替。