黑马程序员技术交流社区
标题:
为什么这个小程序会没法运行?
[打印本页]
作者:
张海兵
时间:
2011-11-30 14:50
标题:
为什么这个小程序会没法运行?
本帖最后由 张海兵 于 2011-12-1 20:12 编辑
大家帮我看看这个程序,为什么会报错?
class Demo
{
public static void main()
{
int[] arr = {3,5,2,65,32,33};
int max = ArrayTool.getMax(arr);
}
}
class ArrayTool
{
public static int getMax(int[] arr)
{
int max = 0;
for(int x = 1; x < arr.length; x++)
{
if(arr[x] > arr[max])
max = x;
}
return arr[max];
}
}
运行结果:Exception in thread "main" java.lang.NoSuchMethodError: main
作者:
胡雷
时间:
2011-11-30 14:53
public static void main(String[] args)
作者:
郝亚平
时间:
2011-11-30 15:01
本帖最后由 郝亚平 于 2011-11-30 16:00 编辑
JVM找不到入口函数main()就报错为:NoSuchMethod:main
你的main方法参数形式错误,不是Java虚拟机需要的,上楼为正解。
main方法的标准形式是public static void main(String args[])这样子写,jvm肯定认识。如果你非得该一下子这个main方法,
你唯一可以改的地方就是,可以把args改成别的有意义的标示符。其它地方都不能动。这样子,JVM也能认识你的main方法。有入口函数。就不会报这个错了。
作者:
李晓斌
时间:
2011-11-30 15:03
对的,你这个程序少了(String [] args)。
另外,你这个程序在main方法中少了输出语句System.out.println(max);
否则的话,编译通过了,也是没有达到取出最大值的效果哦。
作者:
常文艺
时间:
2011-11-30 15:39
本帖最后由 常文艺 于 2011-11-30 15:40 编辑
main()里要定义一个容器 String[] args 。
作者:
方书堂
时间:
2011-11-30 16:31
你的主函数没有啊,虚拟机找不到执行程序的路口;你要加上
public static void main(String[] args)
作者:
武超
时间:
2011-11-30 21:12
本帖最后由 武超 于 2011-11-30 21:14 编辑
他们说的确实是你这个程序不能运行的原因,你的那个java虚拟机JVM找到了入口,但是进不去啊。改成public static void main(String [] args ),再加上个输出语句就OK了
作者:
李栋
时间:
2011-11-30 21:49
我能看到错误的一个地方,但是可惜不知道这个输出会是什么,有待加强啊······平面设计的学编程的有些艰苦啊···
作者:
泼孩
时间:
2011-11-30 23:02
好好看下毕老师基础视频,里面有讲main函数
作者:
zclove898
时间:
2011-12-1 00:50
你程序的主方法出错了。应该是public static void main(String[] args)
运行结果的意思就是以虚拟机没有找到主程序入口,当看到这个错误是,就说明你的主方法出错了。
作者:
李盈科
时间:
2011-12-1 17:27
main 写错了 public static void main(String[] args)
作者:
许邦存
时间:
2011-12-1 21:37
找不到执行程序的路口,主函数应该定义为public static void main(String[] args);可以看得出来你的目的是求出最大数,我觉得在应该在主函数中把最大值打印出来,加上System.out.println(max);这样可以印证自己的结果,平时中也可以这样做,先自己印证一下,呵呵,我也是新学的,共勉。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2