解决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中找到结果。

参考链接

原文地址:https://www.cnblogs.com/lengchong/p/11509419.html

时间: 2024-10-11 21:39:51

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

java程序获取键盘输入(转载)

Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,我们来看以下三种解决方法: 方法一:从控制台接收一个字符,然后将其打印出来 代码示例: 1 //System.in.read()方法,只能接收单个字符 2 private static void inputMethod1() throws IOException { 3

Java中从键盘输入的三种方法

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class EnterTest { public static void main(String[] args) { //主方法 CharTest(); //调用System.in方法 ReadTest(); //调用ReadTest方法 Scan

java下读取键盘输入的简单方法

package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class test{ public static void main(String [] args){ //第一种获取键盘输入的方法 // BufferedReader br=new BufferedReade

Java:用键盘输入个人信息并输出

package 课堂练习;// 包的申明import java.util.*; //导入Java.util的所有类/** Created by Administrator on 2018/4/17 0017.*/ /键盘输入个人简历并输出 2018.4.17 V.1*/public class ShowResume{public static void main(String[] args){int age=25; //年龄String name="陈佳凯"; //姓名int work

JAVA中获取键盘输入的方法总结

Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!下面介绍三种解决方法: 方法一:从控制台接收一个字符,然后将其打印出来 import java.io.*; public static void main(String [] args) throws IOException{ System.out.print("Enter a Char:"); char i = (ch

java 接收一个键盘输入的整数,计算1-1/2!+1/3!-1/4!.....1/n!

这道题我没有想到我会做出来,最重要的还是思路,而不是一上来就开始敲代码,我的水平并没有这么高 import java.util.Scanner; public class jiechen { public static void main(String args[]) { Scanner input=new Scanner(System.in); System.out.println("输入一个数:"); int number=input.nextInt(); double numbe

java怎么接受键盘输入

public class KeyInput{    Scanner s=new Scanner(System.in);//创建一个扫描器的对象 s引用指向它.    String str=s.next();    System.out.println(str);     }

Java中从键盘输入多个整数

yk烁4仕l下加8檬0http://www.zcool.com.cn/collection/ZMTg2OTM5ODg=.html 0t9瞬仔亩鼻0iy坏4http://www.zcool.com.cn/collection/ZMTg2OTQwMTY=.html 9q8乜15Qcka谅儆http://www.zcool.com.cn/collection/ZMTg2OTQxMjg=.html 8xGa幸6pfV刃刀http://www.zcool.com.cn/collection/ZMTg2OT

Java获取用键盘输入常用的的两种方法

方法1:通过 Scanner Scanner input = new Scanner(System.in); String s = input.nextLine(); input.close(); 方法2:通过 BufferedReader BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String s = input.readLine(); 原文地址:https://www.cnblog