[英]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.