2011-10-04 146 views
5

我需要使用遠程調試程序通過SSH隧道調試Java應用程序。我在我的PC上配置了putty,並且我能夠使用隧道連接到在服務器上運行的任何其他服務,但是eclipse遠程調試器無法連接。無法通過SSH隧道遠程調試JVM

在服務器端,我使用Java 1.6.0_21-B06開始與以下調試選項:

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

在我的筆記本電腦的ssh隧道被配置爲:

L8686 IP_ADDR:8686

是在通過ssh隧道運行會話時JVM調試器有任何限制嗎?

還有一件事,當我嘗試連接時,在服務器控制檯上,我可以看到以下日誌mesage:

Listening for transport dt_socket at address: 8686

+0

您是否檢查過防火牆/防病毒軟件/病毒等所有惡意軟件? – kan

回答

2

我有同樣的場景,一切正常,這是我如何運行我的Java應用程序:

java -Xmx120m -agentlib:jdwp=transport=dt_socket,server=y,address=8000 -jar bla.jar 

可能是最有用的部分是一個-agentlib。

+0

輝煌!它現在適合我! –

0

Listening for transport dt_socket at address: 8686如果虛擬機啓動或經常發生現有的調試會話關閉VM開始再次偵聽調試連接。也許在服務器上運行tcpdump可能會給出關於哪個對等方關閉連接的線索,並且在該方面看起來更深一點。

2

您可以嘗試使用L8686 localhost:8686,因爲JVM可能拒絕來自非本地地址的連接?請注意,'localhost'是從服務器角度來看的地址。

+0

救了我的一天。謝謝! – bahti