簡體   English   中英

無法連接到遠程JVM

[英]Unable to connect to a remote JVM

我正在開發一個Java 10應用程序,該應用程序使用嵌入式Jetty服務器提供來自本地網絡的控制,並且正在嘗試連接JVM並失敗。 它在Ubuntu 18.04 LTS桌面上運行。

我的啟動腳本有以下幾行:

java -Xdebug -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -Djava.library_path=${LIB_PATH} -classpath ${CP} -jar ${APP_DIR}/app.jar 

我的系統上有ufw,並且我已驗證端口是否打開。 我從ufw狀態獲得的輸出包括:

8000 ALLOW Anywhere
8000 (v6) ALLOW Anywhere

在IntelliJ中,我的調試配置是

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000

當我嘗試連接時,我收到一條錯誤消息,提示拒絕連接。

在配置的地址欄中輸入機器的IP地址。

查看netstat -l的輸出,我看到以下內容:

tcp 0 0 localhost:8000 0.0.0.0:* LISTEN

這是否意味着調試器僅監聽本地主機上的連接? 我需要做些什么才能使其在網絡上監聽嗎?

問題在這一行:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000

如果連接到遠程計算機,則地址應該是端口號(如果在本地計算機上)和主機名:端口號。 在地址中刪除了“ *:”,它應該可以正常工作。

所以我很快找到了答案。 我需要修改用於服務器的行,使其顯示為:

java -Xdebug -agentlib:jdwp=transport=dt_socket,address=*:8000,server=y,suspend=n -Djava.library_path=${LIB_PATH} -classpath ${CP} -jar ${APP_DIR}/app.jar

因此,這是在所有接口上偵聽的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM