zoukankan      html  css  js  c++  java
  • 解决JAVA单步调试键盘输入被JDB占用的问题

    解决JAVA单步调试键盘输入被JDB占用的问题

    问题来源:

    • 在完成本周任务时,编写的代码中含有Scanner类,编译及运行过程均正确,但使用JDB单步调试时,运行到输入行无法在JDB内部输入变量值。

    解决方案

    • 错误原因:JDB占用了控制台,导致无法在调试窗口进行输入输出操作。

    • 解决步骤:

    • 1.打开两个终端,一个用来远程监听,一个用来JDB单步调试。

    • 2.在终端1输入以下命令进行监听远程控制:
      java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y Calculation
      注意这里的文件目录,一定放一个.class文件在当前目录下,而不仅仅编译到bin中

    • 3.在终端2输入以下命令建立本机与监听窗口的联系,并开始JDB调试:
      (简单直白的讲就是把原来 jdb -classpath .:./bin files的命令替换成这个就行)
      jdb -connect com.sun.jdi.SocketAttach:port=8000,hostname=localhost

    • 4.使用next命令运行到含有Scanner类对象的输入行时,转换到终端1进行变量输入,再转到终端2,此时已经完成输入,程序可以向下运行。

    • 5.运行完程序后输入及输出都可以在终端1中找到结果。

    参考链接

  • 相关阅读:
    活动安排问题
    完美字符串
    Codeforces Round #696 (Div. 2) 解题报告
    Codeforces 1459D
    Codeforces 25D
    POJ 1847
    LightOJ 1074
    POJ 3159
    POJ 1511
    POJ 1502
  • 原文地址:https://www.cnblogs.com/lengchong/p/11509419.html
Copyright © 2011-2022 走看看