线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0

时间:2015-02-05 07:10:34

标签: java

     public static void main(String[] args) throws IOException
  {
    ArrayData inputData = getArrayDataFromImage(args[0]);
    int minContrast = (args.length >= 4) ? 64 : Integer.parseInt(args[4]);
    ArrayData outputData = houghTransform(inputData, Integer.parseInt(args[2]), Integer.parseInt(args[3]), minContrast);
    writeOutputImage(args[1], outputData);
    return;
  }

例外

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at HoughTransform.main(HoughTransform.java:136)

2 个答案:

答案 0 :(得分:0)

您没有使用任何命令行参数运行程序,因此数组为空。

ArrayData inputData = getArrayDataFromImage(
    args.length < 1 ? "some-default-file" : args[0]
);

或者,(如果您不喜欢条件运算符? : - 也就是三元数)

ArrayData inputData = null;
if (args.length < 1) {
    inputData = getArrayDataFromImage("some-default-file");
} else {
    inputData = getArrayDataFromImage(args[0]);
}

答案 1 :(得分:0)

你在这一行得到了例外

 ArrayData inputData = getArrayDataFromImage(args[0]);

因为您没有从命令行传递任何参数,所以String Array [] args的长度为 0 ,并且您正在尝试访问第一个元素。

来自Java Docs

抛出此异常表示已使用非法索引访问数组。该索引要比negativegreater大,要么equal到数组的大小。