【发布时间】:2018-07-30 23:39:12
【问题描述】:
我无法使用 jdb 进行命令行调试以处理 Cucumber/Java jar 文件。例如,我查看了this SO question,到目前为止没有任何效果。
- 当我从 IntelliJ 运行黄瓜功能文件时,它运行良好。
- 我按照当地的指示编译了程序,顺利完成。
- 当我使用
java -jar runJar.jar运行编译后的 jar 文件时,一切正常。 -
当我运行
jdb runJar.jar时,我得到 jdb 提示:正在初始化 jdb ...
但是当我尝试运行 Main-Class 时,它失败了:
> run MainRunner
run MainRunner
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
>
VM Started: Error: Could not find or load main class MainRunner
The application exited
我知道“MainRunner”是正确的类,因为这是 IntelliJ 中“主类:”的名称,还因为我使用以下命令解压缩了 jar 文件:
unzip -c MyJar.jar META-INF/MANIFEST.MF | grep 'Main-Class
它会将Main-Class: com.XXXXX.sdt.framework.runner.MainRunner 报告为主类。
-
如果改为
run MainRunner我输入run com.XXXXX.sdt.framework.runner.MainRunner,那么我会收到错误:VM 已启动:错误:无法找到或加载主类 com.XXXXX.sdt.framework.runner.MainRunner
-
如果我启动一个 JVM 然后附加到它:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044 -jar runJar.jar
和
jdb -attach 1044
在 main1 提示符后继续,我得到错误
Exception occurred: java.lang.StringIndexOutOfBoundsException (uncaught)"thread=main", java.lang.String.charAt(), line=658 bci=21
jdb 上的 Java 文档暗示这应该可以正常工作,所以我不确定从这里去哪里。
【问题讨论】:
标签: java command-line cucumber-java