I'm using intellij idea IDE and I'm trying to run my jar file from terminal in debug mode and set breakpoints in a few places in the code.
the command I'm using is: java -jar myTestApp.jar -file "myfile.txt" -users myUser -Xdebug -Xrunjdwp:transport=dt_socket,server=127.0.0.1,suspend=n,address=8080
The problem is that I'm also using commons-cli library, so -Xdebug and -Xrunjdwp parameters are not recognized as Options, and I'm getting: Any idea how to fix that?
Please assume the writer of the question is not using Java 5 in 2018:
java -agentlib:jdwp=transport=dt_socket,address=8080,server=y,suspend=n -jar myTestApp.jar -file "myfile.txt -users myUser
Btw: in case you use Java 9 and later: change address=8080
to address=*:8080
since localhost is no more the default.
stop telling people to use -Xdebug
and -Xrunjdwp
Xdebug was used in Java 5 and below. Since Java 6 there is the -agentlib
available.
Xdebug
allows access to the debugger over Xrunjdwp
.
JIT now starts in a compatibility-mode if you use Xdebug
and uses a legacy-debugger which slows down your debugging extremely.
People tell then to use -Djava.compiler=NONE
to disable the compatibility-mode or to add -Xnoagent
to disable the legacy debugger. Don't do that use -agentlib
!