[英]Exception in the thread “main”
您好,当我尝试运行此代码时,我遇到以下错误,我知道没有主要功能时会发生这种情况,但是我确实有主要功能。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at FilterAs.main(FilterAs.java:21)
这是我的代码
import java.io.*;
public class FilterAs {
public static int numberOfFiles(File directory) {
if (directory.isFile())
return(1);
else {
File[] list = directory.listFiles();
int count = 0;
if (list != null)
for (File file : list)
count += (file.isFile()) ? 1 : numberOfFiles(file);
return(count);
}
}
public static void main(String[] args) {
System.out.println(numberOfFiles(new File(args[0])));
}
}
我想您忘记为程序设置参数了吗?
调用方法(numberOfFiles)时要访问参数。
如果没有命令行参数传递给程序,则由于args
数组为空,因此以下内容将引发ArrayIndexOutOfBoundsException
。
System.out.println(numberOfFiles(new File(args[0])));
您应该在访问args
数组之前检查是否存在此类参数:
if (args.length > 0) {
System.out.println(numberOfFiles(new File(args[0])));
} else {
System.out.println("Please supply a file name");
}
您可以拨打以下电话:
args[0]
但是args
是空的。
您已使用以下方式调用了程序:
java -jar MyJar.jar
但是您应该用以下方式调用它:
java -jar MyJar.jar /a/path/to/some/directory
也就是说,您需要将参数传递给您的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.