class Option{
public static void main ( String[] args ){
if ( args[0].equals( "-en" )){
System.out.println( "English Option" ) ;
} else if ( args[0].equals( "-es" )){
System.out.println( "Spanish Option") ;
}
else System.out.println( "Unrecognized option" ) ;
}
}
尝试运行时我收到此错误
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0 在Option.main(Option.java:5)
如果这很简单,我很难对编码感到遗憾
提前致谢
答案 0 :(得分:2)
当您启动程序时,您没有传递任何命令参数,因此args
的长度为0
。因此,您无法访问其第一个元素:
args[0]
您可以传递command-line argument之类的
java Option argument_here
在你的情况下,它可能是:
java Option -en
java Option -es
但是当你没有通过任何参数检查args
的长度是0
时,你也可以处理这个案例:
if (args.length == 0)
System.out.println("No arguments passed.");
else {
// ...
}
答案 1 :(得分:1)
如果在运行程序时没有提供参数,则args
的长度为零,并且没有args[0]
元素。在检查第一个arg之前,您应该测试args.length > 0
是否正确。例如:
public static void main ( String[] args ) {
if (args.length == 1) {
if ( args[0].equals( "-en" ))
{
System.out.println( "English Option" ) ;
}
else if ( args[0].equals( "-es" ))
{
System.out.println( "Spanish Option") ;
}
else System.out.println( "Unrecognized option" ) ;
} else {
// zero or more than one option
System.out.println( "Usage: java Option [-en | -es]" ) ;
}
}
答案 2 :(得分:0)
在检查args [0]中的值之前,你应该总是考虑没有args [0]