Search code examples
javadebuggingintellij-idea

Attach IntelliJ IDEA debugger to a remote java -server running process


I run Java appliaction on Ubuntu virtual machine with command:

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

I opened port 9999 with command (an also forwarded port in VirtualBox):

sudo ufw allow 9999/tcp

And I try to attach debugger with IntelliJ IDEA: IDEA debug

And finally i end up with error

IOException "handshake failed - connection prematurally closed"

Im not very well experienced in remote debugging. Can you tell me is it possible to attach debugger to java -server process?


Solution

  • Try to specify -agentlib options before everything else:

    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}