java.lang.ArrayIndexOutOfBoundsException问题

时间:2011-02-07 06:01:33

标签: java

我是一名新的Java程序员。以下是我的代码:

public static void main(String[] args) throws Exception {
        BPM2SampleProcessor processor = new BPM2SampleProcessor();
        processor.setSampleSize(1024);
        EnergyOutputAudioDevice output = new EnergyOutputAudioDevice(processor);
        output.setAverageLength(1024);
        Player player = new Player(new FileInputStream(args[0]), output);
        player.play();
        log.log(Level.INFO, "calculated BPM: " + processor.getBPM());
}

它将运行时错误显示为

  

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0,如下所示:Player player = new Player(new FileInputStream(args[0]), output);

请解释错误是什么以及如何克服错误。

4 个答案:

答案 0 :(得分:3)

您是从命令行还是从像Eclipse这样的IDE运行代码?

每个main方法都有一个String [](通常称为args),您可以在代码的第一行看到它。

程序正在尝试使用args [0]作为要打开的文件的名称。 (您从命令行提供,或在IDE中配置)。但是现在args变量中没有任何内容。尝试使用表示要打开的文件的字符串替换程序中的args [0]。您必须确保获得正确的路径。

答案 1 :(得分:0)

当你运行它时,你可能没有将任何命令行参数传递给你的程序,因此args的大小为0,而args [0]将抛出你看到的异常。解决方案是通过调用

来传递一个参数,大概是一个适当的文件名
java MyProgram myfilename.ext

答案 2 :(得分:0)

当你运行程序时,你必须给出一个参数。 args [0]来自你没有给出的用户输入。像java MyProgram 5

这样的东西

答案 3 :(得分:0)

您没有传递所需的参数args[0],因此它会抛出错误。