java - 从终端以 Debug模式运行 jar

标签 java apache-commons-cli

我正在使用 intellij idea IDE,并且尝试在 Debug模式下从终端运行我的 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 和 -Xrunjdwp 参数不被识别为选项,我得到: enter image description here 知道如何解决这个问题吗?

最佳答案

请假设问题作者在 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,因为 localhost 不再是默认值。

停止告诉人们使用 -Xdebug-Xrunjdwp

Xdebug用于Java 5及以下版本。从 Java 6 开始,就有了 -agentlib 可用。 Xdebug 允许通过 Xrunjdwp 访问调试器。如果您使用 Xdebug 并使用旧版调试器,JIT 现在会以兼容模式启动,这会极大地减慢您的调试速度。人们告诉然后使用 -Djava.compiler=NONE 来禁用兼容模式或添加 -Xnoagent 来禁用旧版调试器。不要使用 -agentlib 这样做!

关于java - 从终端以 Debug模式运行 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52947783/

相关文章:

java - 线程中的异常 "main"java.lang.IndexOutOfBoundsException : Index: 20, 大小:20

java - Commons CLI 中的截断选项被错误接受

java - Hadoop NoSuchMethodError apache.commons.cli

java - 如何在没有任何确定或取消选项的情况下在 Java 中仅显示纯消息?

java - 使用 Apache Commons CLI 库时如何获取参数

java - Apache Commons CLI - 选项类型和默认值

Java:Apache commons-cli如何处理相互依赖的选项

java - 为什么我的逻辑不适用于 if 语句?

java - Java中使用流比较两个List元素并返回

java - Singleton 中的惰性初始化是如何发生的?