由于某种原因,我遇到此错误,并且我现在非常困惑。 我该如何解决这个问题?
public static void main(String[] args) throws FileNotFoundException {
Memory myMemory = new Memory();
File file = new File(args[0]);
myMemory.fileParser(file);
}
这是我的错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at Memory.main(Memory.java:262)
答案 0 :(得分:1)
很明显,您在运行程序时未提供任何命令行参数。结果,args
arraay的长度为零。您的代码并非旨在解决该问题,而是尝试使用从数组末尾开始的位置获取的参数。
解决方案分为两部分:
您需要提供参数。例如,如果您从命令行运行程序:
$ java name.of.your.mainclass filename
您需要修改程序,以便它检测到它已被调用而没有参数,并显示错误消息。例如:
public static void main(String[] args) throws FileNotFoundException {
if (args.length != 1) {
System.err.println("Filename argument missing.")
System.err.println("Usage: <command> <filename>");
System.exit(1);
}
Memory myMemory = new Memory();
File file = new File(args[0]);
myMemory.fileParser(file);
}
答案 1 :(得分:0)
您在运行程序时是否已将任何参数传递给main方法?
您必须在 140 | };
141 |
> 142 | @connect(mapStateToProps, mapDispatchToProps)
| ^
143 |
144 | class Header extends Component {
145 | constructor(props) {
中将字符串显式传递给args,否则main(String[] args)
将引发异常
如何在Eclipse中传递arg: Invoking Java main method with parameters from Eclipse