运行 终端调试模式下的 jar
run jar in debug mode from terminal
我正在使用 intellij idea IDE 并且我正在尝试 运行 我的 jar 文件从终端处于调试模式并在代码的几个地方设置断点。
我使用的命令是:java -jar myTestApp.jar -file "myfile.txt" -users myUser -Xdebug -Xrunjdwp:transport=dt_socket,server=127.0.0.1,suspend=n,address=8080
问题是我也在使用 commons-cli 库,所以 -Xdebug 和 -X运行jdwp 参数不被识别为选项,我得到:
知道如何解决这个问题吗?
-Xdebug 应该移到-jar 参数前面。现在 Java 认为它是程序参数的一部分。
在将 class 或 jar 指定为 运行 之后,Java 只需要程序参数。因此,只需尝试将您的 JVM 选项放在这之前:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=127.0.0.1,suspend=n,address=8080 -jar myTestApp.jar -file "myfile.txt" -users myUser
请假设问题的作者在 2018 年没有使用 Java 5:
java -agentlib:jdwp=transport=dt_socket,address=8080,server=y,suspend=n -jar myTestApp.jar -file "myfile.txt -users myUser
顺便说一句:如果您使用 Java 9 and later:将 address=8080
更改为 address=*:8080
,因为本地主机不再是默认设置。
不要告诉人们使用 -Xdebug
和 -Xrunjdwp
Xdebug 用于 Java 5 及以下版本。由于 Java 6 有 -agentlib
可用。
Xdebug
允许通过 Xrunjdwp
访问调试器。如果您使用 Xdebug
并使用遗留调试器,JIT 现在以兼容模式启动,这会极大地减慢您的调试速度。人们告诉然后使用 -Djava.compiler=NONE
禁用兼容模式或添加 -Xnoagent
禁用旧版调试器。不要这样做使用 -agentlib
!
这对我有用
java -jar -Xdebug -agentlib:jdwp="transport=dt_socket,server=y,suspend=n,address=5000" core-service-1.0-SNAPSHOT.jar
我正在使用 intellij idea IDE 并且我正在尝试 运行 我的 jar 文件从终端处于调试模式并在代码的几个地方设置断点。
我使用的命令是:java -jar myTestApp.jar -file "myfile.txt" -users myUser -Xdebug -Xrunjdwp:transport=dt_socket,server=127.0.0.1,suspend=n,address=8080
问题是我也在使用 commons-cli 库,所以 -Xdebug 和 -X运行jdwp 参数不被识别为选项,我得到:
-Xdebug 应该移到-jar 参数前面。现在 Java 认为它是程序参数的一部分。
Java 只需要程序参数。因此,只需尝试将您的 JVM 选项放在这之前:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=127.0.0.1,suspend=n,address=8080 -jar myTestApp.jar -file "myfile.txt" -users myUser
请假设问题的作者在 2018 年没有使用 Java 5:
java -agentlib:jdwp=transport=dt_socket,address=8080,server=y,suspend=n -jar myTestApp.jar -file "myfile.txt -users myUser
顺便说一句:如果您使用 Java 9 and later:将 address=8080
更改为 address=*:8080
,因为本地主机不再是默认设置。
不要告诉人们使用 -Xdebug
和 -Xrunjdwp
Xdebug 用于 Java 5 及以下版本。由于 Java 6 有 -agentlib
可用。
Xdebug
允许通过 Xrunjdwp
访问调试器。如果您使用 Xdebug
并使用遗留调试器,JIT 现在以兼容模式启动,这会极大地减慢您的调试速度。人们告诉然后使用 -Djava.compiler=NONE
禁用兼容模式或添加 -Xnoagent
禁用旧版调试器。不要这样做使用 -agentlib
!
这对我有用
java -jar -Xdebug -agentlib:jdwp="transport=dt_socket,server=y,suspend=n,address=5000" core-service-1.0-SNAPSHOT.jar