简体   繁体   中英

run jar in debug mode from terminal

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 !

Java expects only program arguments after specifying the class or jar to run. So simply try putting your JVM options before that:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=127.0.0.1,suspend=n,address=8080 -jar myTestApp.jar -file "myfile.txt" -users myUser 

这对我有用

java -jar -Xdebug  -agentlib:jdwp="transport=dt_socket,server=y,suspend=n,address=5000" core-service-1.0-SNAPSHOT.jar

-Xdebug should be moved in front of the -jar parameter. Now Java thinks it's part of your program's arguments.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM