解决键盘输入被JDB占用的问题
本周使用JDB调试需要使用键盘输入数据,但我在正确的位置输入数据后发现JDB提示如图所示的错误。
上网查找后得知该错误的产生是因为JDB占用了控制台,于是我写了这篇博客来与大家分享一下我所用的解决办法。
- a.打开第一个终端,首先使用
javac
命令对源代码进行编译,编译结束后,使用cd
命令进入字节码文件所在的文件夹。
- b.进入文件夹后,使用
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y <主类名>
命令,图中的主类名就是Conbination
。 - c.打开第二个终端,切换到字节码文件的上一级文件夹,在终端中输入
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8000
命令进入JDB并进行远程调试。
- d.像以前在JDB中调试程序一样使用
stop at
以及stop in
命令设置断点,run
命令运行程序。 - e.运行到输入语句是切换到第一个终端,在终端中输入数据并回车。
- f.使用next或其他语句继续执行命令,执行到输出语句时可以在第一个终端中看到输出结果。