2017-07-24 72 views
1

遠程Java我Ubuntu的虛擬機上運行的Java appliaction與命令:附加IntelliJ IDEA的調試器-server運行過程

java -showversion -server -Xmx512M -Drps.home=${RPS_HOME} \ 
-Dcontainer.host=${CONTAINER_HOST} \ 
-Djava.util.logging.config.file=$4 \ 
-classpath ${RPS_LIBS} com.softel.rps.impl.core.SPEngine ${CONFIG} \ 
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999 

我打開與命令端口9999(一個在VirtualBox中也轉發端口):

sudo ufw allow 9999/tcp 

我嘗試將調試器的IntelliJ IDEA: IDEA debug

最後我結束了錯誤

IOException "handshake failed - connection prematurally closed" 

我在遠程調試方面經驗不是很豐富。你能告訴我是否可以將調試器附加到java -server進程?

+0

是的,這是可能的,見https://stackoverflow.com/a/42392922/104891。使用telnet驗證您是否可以連接到指定的主機/端口,問題可能在於配置或網絡設置。例如,您的屏幕截圖上的'localhost'看起來很可疑,因爲您正在連接到另一臺機器(VM)。除非您從'localhost'啓用端口轉發到VM,否則它將不起作用。 – CrazyCoder

回答

2

嘗試一切之前指定-agentlib選項:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999 
-showversion -server -Xmx512M -Drps.home=${RPS_HOME} \ 
-Dcontainer.host=${CONTAINER_HOST} \ 
-Djava.util.logging.config.file=$4 \ 
-classpath ${RPS_LIBS} com.softel.rps.impl.core.SPEngine ${CONFIG} 
+0

謝謝,它的工作原理! :) –

相關問題