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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© @ne_pie尒ce 中级黑马   /  2013-11-8 18:06  /  1458 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class String {

        /**
         * @param args
         */
        public static void main(String[] args){
                // TODO Auto-generated method stub
                System.out.println("string");
        }

}
运行结果:
错误: 在类 String 中找不到主方法, 请将主方法定义为:   public static void main(String[] args)解释一下运行结果出现的原因?


评分

参与人数 1黑马币 +3 收起 理由
乔兵 + 3

查看全部评分

8 个回复

倒序浏览
String能跳过编译器?
回复 使用道具 举报
我能说把主方法重写下就好了吗, 以前也遇到过,不知道哪里出问题
回复 使用道具 举报
我的猜测,编译器以为你运行的是JDK里面的String类,然后那里面没有main函数,你把你的类名换个试试
回复 使用道具 举报
你得看看ClassLoader是什么,怎么加载类的,
ClassLoader加载你这个String类的时候,会先在SystemClassLoader-->extensionClassLoader-->bootStrapClassLoader
中找这个类,然后会在bootStrapClassLoader中发现这个类的实例并返回
那个String中当然没有main方法。。。
回复 使用道具 举报
java编译器默认找到是java自己的String类,她是final修饰的,所以对她什么都不能干,别说没有这个方法,就算有main方法也没法Overloading哦~
回复 使用道具 举报
String是java中的字符串类型。楼主对命名规则很不熟悉。首先你要注意不能使用java中关键字。

命名时,首字母大写,其他小写,多个单词时,首字母均大写。例如StringDemo;类是代表对象的,命名时尽量使用名词。

不对请指正,不全望补充。
回复 使用道具 举报
个人感觉是你的包名写错了,

String属于关键字,不能用于包名,编译就出错了{:soso_e147:}
回复 使用道具 举报
失误,应该是类名

在java中保留关键字是被java本身定义使用的字母组合,具有特殊意义,所以不能用作变量名、方法名以及类名。Java共有51个关键字,

java是以C++为基础的。C++以C为基础的,很多基本的都是相同的,不可以做类名,包名是可以的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马