“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:0
例外情况“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:0,java,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(
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)
您在这一行遇到了异常
ArrayData inputData = null;
if (args.length < 1) {
inputData = getArrayDataFromImage("some-default-file");
} else {
inputData = getArrayDataFromImage(args[0]);
}
因为您没有从命令行传递任何参数,所以字符串数组[]args
的长度是0,您正在尝试访问第一个元素
从
引发此异常是为了指示已使用非法索引访问数组。索引小于或等于数组大小。打印数组大小并检查是否传递了适当的值args[]中的内容看起来好像没有给程序提供4个参数。这是我的全部计划如果你能看一下,我就搞不懂了。感谢you@PogorDorin错误在于如何运行程序(请注意,我的答案告诉您如何防止该错误)
java-jar myfile.jar ARG0 ARG1 ARG2
ArrayData inputData = null;
if (args.length < 1) {
inputData = getArrayDataFromImage("some-default-file");
} else {
inputData = getArrayDataFromImage(args[0]);
}
ArrayData inputData = getArrayDataFromImage(args[0]);