簡體   English   中英

如何在調試 Java 代碼時使用 Scanner 類對象在變量中設置值?

[英]How can i set value in variable using Scanner class object while debugging Java code?

我在使用 jdb(Java Debugger) 調試 Java 源代碼時遇到問題。 當我嘗試使用掃描儀類對象在實例變量中設置值時,它將顯示以下輸出

Jdb 顯示以下輸出

我不明白為什么我收到這條消息“無法識別的命令”。 我的java源代碼如下

import java.util.Scanner;
class StringPlay{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
    int t;
    // System.out.println("t");
    t=sc.nextInt();
    for(int l=0;l<t;l++){
            String s="",a="";
        int k=0,player=0;
        // System.out.println("s");
        s=sc.next();
        for(int i=0;i<s.length();i++){
            for(int j=i+1;j<s.length();j++){
                if((int)s.charAt(j)!=(int)s.charAt(i)){
                    // strcat(a,s[j]);
                    a+=s.charAt(j);
                    // k++;
                }
                if(j==s.length()-1){
                    s=a;
                    a="";
                    // string::replace(a,0,"");

                    player++;
                }
            }
        }
        if(player%2==0)System.out.println("player1");
        else System.out.println("player2");
    }

    }
}

好吧,我使用的是 jdb 1.8 版(Java SE 1.8.0_151 版)。 和 java 版本“9.0.1”Java(TM) SE 運行時環境(構建 9.0.1+11)Java HotSpot(TM) 64 位服務器 VM(構建 9.0.1+11,混合模式)

我正在 Ubuntu 16.04LTS 中研究 Java。

預先感謝您幫助我。

嘗試向 Scanner 提供輸入字符串以使用 jdb 進行調試。 因為您的控制台輸入正在被 jdb 讀取,而不是被 Scanner 類讀取。

你可以試試:

String myInput = "This is my input, that I want in my sc.";
Scanner sc = new Scanner(myInput);

或者你可以直接喂它:

Scanner sc = new Scanner("This is my input, that I want in my sc.");

這篇文章中得到了這個信息:

您將需要將應用程序的運行和在兩個不同終端中的調試分開。

第一個終端只需要運行應用程序,但以jdb稍后可以連接到它的方式運行它。 您可以使用以下命令執行此操作: java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n MyClass

在第二個調試窗口中,您需要通過運行以下命令連接到 Java 應用程序: jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8000

現在,為了輸入值以便您的掃描器可以讀取它,請返回到第一個終端(運行應用程序的終端)並正常輸入參數。

您設置的任何斷點都將在您的第二個調試窗口中命中。

希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM