我是一名新的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);
请解释错误是什么以及如何克服错误。
答案 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]
,因此它会抛出错误。