黑马程序员技术交流社区
标题:
这个错误我想了很久了,不知道怎么回事!
[打印本页]
作者:
邓海涛
时间:
2012-4-7 20:58
标题:
这个错误我想了很久了,不知道怎么回事!
package cn.dan.day2;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class TestMain {
/**
* @param args
* @throws ClassNotFoundException
* @throws NoSuchMethodException
* @throws SecurityException
* @throws InvocationTargetException
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
public static void main(String[] args) throws SecurityException, NoSuchMethodException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
// TODO Auto-generated method stub
String startClassName = args[0] ;
Method mainMethod = Class.forName(startClassName).getMethod("main", String[].class) ;
mainMethod.invoke(null, new Object[]{new String[]{"aaa","bbb","ccc"}}) ;
}
}
class TestArguments{
public static void main(String[] args){
for(String arg : args){
System.out.println(arg);
}
}
}
问题:这个代码为什么会报:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at cn.dan.day2.TestMain.main(TestMain.java:20)
的错误?要怎么样解决?
作者:
宋蕈
时间:
2012-4-7 21:07
本帖最后由 宋蕈 于 2012-4-7 21:09 编辑
你是不是那个执行的时候 没有给出 参数才会报错啊。
你要在执行的时候 准确的给出 下面那个TestArguments 类的 完整路径才行。
你报错的地方就是没检查到 agrs[0] 这个地方。 显然是无参的情况
作者:
邓海涛
时间:
2012-4-7 21:10
你说的是在命令提示符里面的吧?恩,确实是那个问题,我在命令提示符里面输入:java TestMain cn.dan.day2.TestArguments 之后就得到效果了,真的太感谢了啊,帮我解决了今天想了一天的这个问题!
作者:
郑苑东
时间:
2012-4-7 21:11
本帖最后由 郑苑东 于 2012-4-7 21:16 编辑
数组下标索引越界啊。。你运行时。。。可以在 类后面加上 空格。。然后加上参数。。如果多个参数可以用空格隔开。。。。
作者:
邓海涛
时间:
2012-4-7 21:18
恩,谢谢,已经解决了,是因为我没有传参数导致的!
还有个问题就是在命令提示符里面运行我解决了,但是我在myeclipse里面还是不知道怎么才能运行,myeclipse里面不是不支持
运行的时候传参数的吗?我要怎么样才可以在myeclipse里面运行呢?
作者:
欧阳才志
时间:
2012-4-7 21:19
ArrayIndexOutOfBoundsException: 0
这个是脚标越界!你开始定义的时候是 String startClassName = args[0]没有初始化导致的
作者:
邓海涛
时间:
2012-4-7 21:28
恩,是啊,这个是反射机制了,我明白在命令提示符里面直接输入参数就行了,那在myeclipse里面运行不能在运行的时候输入参数啊?
我现在想求解的就是在myeclipse里面怎么加入运行时的那个参数?谢谢
作者:
pray
时间:
2014-4-26 04:36
努力,努力,再努力!!!!!!!!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2