[英]How can I change the value of a variable while debugging Java code in NetBeans 7.1?
[英]How can i set value in variable using Scanner class object while debugging Java code?
我在使用 jdb(Java Debugger) 調試 Java 源代碼時遇到問題。 當我嘗試使用掃描儀類對象在實例變量中設置值時,它將顯示以下輸出
我不明白為什么我收到這條消息“無法識別的命令”。 我的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.