java - 当相同的 printf 方法在控制台上正确打印出来时,如何解决 Eclipse 调试器窗口上的 java printf 问题(“找不到源。”)?
问题描述
我的代码没有运行,所以我使用了 eclipse 调试器,当我到达 printf 部分时,它显示了一条错误消息:找不到源。
这是调试器错误消息。但是,它仍然会在控制台上打印出 find ,并且仅在调试器窗口上显示错误消息,并且不会让我继续执行存在“真实”错误的下一行。 这是堆栈跟踪。
System.out.printf("a: %d\n", curElement.a);
System.out.printf("%d %d %d %d ", curElement.a, curElement.b, curElement.c, curElement.io);
上面的这两行似乎在调试器窗口上有“找不到源”错误。你能帮我解决我的printf问题吗?谢谢你。
public class Scheduling2 {
public static void main(String args[]) {
try {
String fileAddress = args[0];
File fileInput = new File(fileAddress); //Read
Scanner scan = new Scanner(fileInput);
int numProcesses = scan.nextInt();
Queue<Process> processes = new LinkedList<Process>();
ArrayList<Process> allProcesses = new ArrayList<Process>();
//LinkedList processes = new LinkedList(); //No need to define the size
int currNumProcesses = 0;
//Adding each process to processes queue
for (int m = 0; m < numProcesses; m++) {
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
int io = scan.nextInt();
Process thisProcess = new Process(a, b, c, io);
thisProcess.id = m;
processes.add(thisProcess);
allProcesses.add(thisProcess);
currNumProcesses++;
}
printQueue(processes, numProcesses);
FCFS(processes, numProcesses, allProcesses);
printQueue(processes, numProcesses);
}
catch (Exception e){
e.printStackTrace();
System.out.printf(" Error: File not foundd. \n");
}
}
public static void printQueue (Queue processes, int numProcesses) {
Process curElement = (Process) processes.poll();
System.out.printf("The original input was: ");
while(curElement != null) {
System.out.printf("a: %d\n", curElement.a);
System.out.printf("%d %d %d %d ", curElement.a, curElement.b, curElement.c, curElement.io);
curElement = (Process) processes.poll();
}
System.out.print("\n\n");
}
解决方案
使用调试器时,当您“进入”任何方法时,它会尝试向您显示该方法的源代码。如果找不到源,它仍然可以步进,但无法显示相应的源。如果它不能步进,它仍然可以执行代码。
您的“FileNotFound”异常告诉您它找不到您的代码尝试打开的文件(或者可能是您尝试在其中创建文件的文件夹)。请记住,任何相对文件位置都取决于知道运行代码的进程从哪个“默认目录”开始。您可以通过确保只有绝对文件位置(即从驱动器上的根目录开始的位置)来解决该问题,尽管这对于编写在不同机器上运行的程序可能是个问题。不过,对于学习时的练习,我认为这样做很好。
推荐阅读
- python - 如何逐行打印在线txt文件?
- apache-kafka - Kafka集群通过ansible重启
- c++ - C++ 字符错误
- r - plm:固定效应回归 - 索引/ID顺序
- vb.net - 使用仅加密权限 vb.net 或 powershell 发送 Outlook maiItem
- android - 当应用程序在工作资料中运行时如何从个人资料中选择图像
- angular - 在 Angular 8 中修改 npm 包
- excel - 如何在 Excel VBA 中正确使用 SelectSingleNode 来选择大型 XML 文件中的节点
- reactjs - 如何使用 cacheCall() 从智能合约中获取数组?
- mysql - MySQL子查询多行/列作为字符串