我的代码没有运行,所以我使用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");}
1 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
使用调试器时,当您“单步执行”任何方法时,它会尝试向您显示该方法的源代码。如果它找不到源,它可能仍然能够步进,但无法向您显示相应的源。如果它无法单步执行,它仍然可以执行代码。
“FileNotFound”异常告诉您,它找不到代码尝试打开的文件(或者可能是您尝试在其中创建文件的文件夹)。请记住,任何相对文件位置都取决于知道运行代码的进程开始时所在的“默认目录”。您可以通过确保只有绝对文件位置(即以驱动器上的根目录开头的文件位置)来解决此问题,尽管这对于编写在不同计算机上运行的程序来说可能是一个问题。不过,对于在学习的同时进行练习,我认为这样做是可以的。
添加回答
举报
0/150
提交
取消