[英]Can't get Java app to listen on port for remote debugging purposes?
我有一個使用Oracle Java 1.8.0在Ubuntu 14.x上運行的Spring Boot Java應用程序 ,我想通過IntelliJ進行遠程調試。 我試圖讓它偵聽端口以進行調試,但沒有成功。 請注意,我嘗試的端口都位於端口1024上方 ,以確保這不是權限問題。 我不是root用戶,但是我對這個盒子有sudo訪問權限。
我嘗試將其添加到Java命令行:
-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y
我從本文檔中獲得的一種技術:
http://javahowto.blogspot.com/2010/09/java-agentlibjdwp-for-attaching.html
但是,當我運行此命令時:
sudo netstat -an | grep LISTEN
我沒有看到端口9009。此外,該應用程序不按“ suspend = y”參數指示的那樣等待調試器附加,因為我看到該應用程序初始化消息的流向與應用程序啟動一樣正常。 為什么這不起作用?
這是啟動應用程序的shell腳本。 請注意,此shell腳本是由supervisor啟動的。 我指出這是為了避免引起任何麻煩:
# !/bin/bash
# Shell script to launch Spring Boot app
# Kill subprocess when parent bash process is terminated by supervisor or when CTRL+C is received
trap 'kill -TERM $PID' TERM INT
java \
-Dnetworkaddress.cache.ttl=5 \
-Dnetworkaddress.cache.negative.ttl=5 \
\
-jar spbootapp.jar \
-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y
--spring.application.name=spbootapp-awsdev \
--spring.profiles.active=cluster \
--spring.cloud.config.enabled=false \
--endpoints.configprops.enabled=false \
--endpoints.health.sensitive=false \
&
調試參數-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y
需要放在命令中的-jar
之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.