程序终止,没有错误消息

时间:2013-12-05 16:16:03

标签: java terminate

这是我必须用于问题的代码。我应该在Eclipse中的命令行中查找单词,输入java Spell a并在控制台中以一个本地文本文件开头的所有单词outprinted。我的程序没有明显原因终止:

import java.util.*;
import java.io.*;

public class Spell {
public static void main (String[] args) throws Exception {
    File file = new File("C:\\Users\\Dennis\\words.txt");
    Scanner fileScanner = new Scanner(file);
    while (fileScanner.hasNext()) {
        String word = fileScanner.next();
        if(word.startsWith(args[0])) {
            System.out.println(word);
        }
    }   
}

}

2 个答案:

答案 0 :(得分:0)

如果您正在以java Spell garfield运行此程序,那么args[0]将在文件中包含加菲猫,如果任何单词与加菲尔德匹配,那么您的打印语句将被执行,否则不会。您必须提供运行ecclipse中用于运行程序的时间参数,然后您就可以看到所需的实际输出。enter image description here

右键点击Class main method run as->run configuration tab (x)=Arguments中的{{1}},然后选择您的参数,然后查看下面的屏幕截图

答案 1 :(得分:0)

在eclipse中,右键单击您的java文件 - >以 - >运行运行配置 - >选项卡参数,在程序参数中输入a。如果没有输入参数,你应该得到一个" ArrayIndexOutOfBoundsException"在

if(word.startsWith(args[0])) {

我建议在线上设一个断点

String word = fileScanner.next();

然后调试。 这样您就可以验证程序扫描的单词,并检查arg [0]是否是您输入的内容。

我用words.txt运行你的程序,如

asdf
bsdf
csdf
dsdf

和参数c,它会正确打印出

csdf