A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张海兵 黑马帝   /  2011-11-30 14:50  /  3796 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张海兵 于 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

评分

参与人数 1技术分 +1 收起 理由
杨玉揆 + 1

查看全部评分

11 个回复

倒序浏览
胡雷 黑马帝 2011-11-30 14:53:20
沙发
public static void main(String[] args)

评分

参与人数 1技术分 +1 收起 理由
杨玉揆 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 郝亚平 于 2011-11-30 16:00 编辑

JVM找不到入口函数main()就报错为:NoSuchMethod:main
你的main方法参数形式错误,不是Java虚拟机需要的,上楼为正解。
main方法的标准形式是public static void main(String args[])这样子写,jvm肯定认识。如果你非得该一下子这个main方法,
你唯一可以改的地方就是,可以把args改成别的有意义的标示符。其它地方都不能动。这样子,JVM也能认识你的main方法。有入口函数。就不会报这个错了。

评分

参与人数 1技术分 +1 收起 理由
杨玉揆 + 1

查看全部评分

回复 使用道具 举报
对的,你这个程序少了(String [] args)。
另外,你这个程序在main方法中少了输出语句System.out.println(max);
否则的话,编译通过了,也是没有达到取出最大值的效果哦。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
本帖最后由 常文艺 于 2011-11-30 15:40 编辑

main()里要定义一个容器 String[] args 。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
你的主函数没有啊,虚拟机找不到执行程序的路口;你要加上
public static void main(String[] args)

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
武超 黑马帝 2011-11-30 21:12:19
7#
本帖最后由 武超 于 2011-11-30 21:14 编辑

他们说的确实是你这个程序不能运行的原因,你的那个java虚拟机JVM找到了入口,但是进不去啊。改成public static void main(String [] args ),再加上个输出语句就OK了

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
李栋 金牌黑马 2011-11-30 21:49:29
8#
我能看到错误的一个地方,但是可惜不知道这个输出会是什么,有待加强啊······平面设计的学编程的有些艰苦啊···
回复 使用道具 举报
泼孩 黑马帝 2011-11-30 23:02:05
9#
好好看下毕老师基础视频,里面有讲main函数
回复 使用道具 举报
你程序的主方法出错了。应该是public static void main(String[] args)
运行结果的意思就是以虚拟机没有找到主程序入口,当看到这个错误是,就说明你的主方法出错了。
回复 使用道具 举报
main 写错了  public static void main(String[] args)
回复 使用道具 举报
找不到执行程序的路口,主函数应该定义为public static void main(String[] args);可以看得出来你的目的是求出最大数,我觉得在应该在主函数中把最大值打印出来,加上System.out.println(max);这样可以印证自己的结果,平时中也可以这样做,先自己印证一下,呵呵,我也是新学的,共勉。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马