java中main函数的位置必须在public class类中么? (eclipse,editplus环境下)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中main函数的位置必须在public class类中么? (eclipse,editplus环境下)相关的知识,希望对你有一定的参考价值。

如题,比如在一个源文件中:
public class People
…………………………

class A
public static void main(String args[])
…………………………


文件保存为People.java

我想问的是:在cmd下我执行 javac People.java和java A都正常,可以执行。但是在eclipse和editplus下怎么老错误,提示:
错误: 在类 People 中找不到主方法, 请将主方法定义为:
public static void main(String[] args)

我想问下这是怎么回事,java中main函数的位置必须在public class类中么?
初学,知道的朋友给详细说下,满意追加分数!
大家仔细看下,我环境配置什么的都正确,
cmd下可以,eclipse下为什么不可以 ,两者对比的说下,详细点!

[1] javac People.java编译People类和A类,java A就是执行A的main方法
[2] eclipse和editplus中运行时,类似在cmd中执行java People
也就是在People类中寻找main方法,找不到,所以出错
[3] 其实main方法定义在哪个类里面都不影响程序的功能实现。
你所遇到的问题应该是:开发环境默认了一些规则,如只在与文件名同名的类中查找main方法。建议把main方法定义在People类当中
[4] 笑纳^
参考技术A 本人的理解是main函数的位置不是必须在public class类中。但是,如果你不是放在public class中的话,它就只是一个公共的、静态的、无返回值的方法,叫不叫main都不重要。
但如果要放在public calss中的话,就必须使用public static void main的格式,这样才是主函数;使用其他的格式也不是主函数。
至于你说的dos里可以运行,而eclipse不能的情况,应该是其工具内置运行方式的问题,这个就没了解过了。关注高手解决!
参考技术B java的程序运行的过程是这样的,先把java源程序.java文件编译成为java字节码程序.class文件,用的是cmd中得javac命令,然后是执行.class文件,生成可执行程序,这里用的是java这个cmd命令,在javac中没有出错,是因为你的编译通过了,你在eclipse中写这些java源程序,没有红叉叉就是编译通过,上面如果你都知道,那我就当我说的是废话,你的那个People类没有主函数,在eclispe中编译时通过,但是运行不通过,在eclipse中运行的时候只是认那个public的那个类,如果那个public类没有main,运行就出错,,而在cmd中,java A没有出错,是因为有main,如果
你在cmd中javac people.java然后再 java people也会出错,不知道我说的怎么样,,
参考技术C 在eclipse中执行的是你的主类People, 如果你People类没有主函数肯定无法执行,你要是一定执行A类的话,按照以下方法可以执行

public class People
…………………………

public static void main(String args[])

A.main(null);



class A
public static void main(String args[])
…………………………


仅供参考。
参考技术D main( )方法所在的类不一定要是public的,你可以在所有类中都定义一个main( )方法,执行的时候只会执行命令行所调用的那个类的main( )方法. 这种在每个类中都设置一个main( )方法的技术可使每个类的单元测试都变得简便易行。而且你在完成单元测试之后,也无需删除main( ),你可以将其留待下次测试。

Java中main函数

Java中main函数必须声明在一个类里?为什么?
那么一个程序为什么可以声明多个类?只能声明一个main?
main与类多关系?
请详细讲解一下?

main函数是一个程序的入口,也是出口,main函数其实就是类里的一个方法,方法只能在类里声明了,所以maion函数必须声明在一个类里,一个程序里只有一个main函数,因为类与类之间是相与调用的。一个程序从开始运行就会先找main函数,然后再一步一步的执行,如果有多个main那么程序就会报错,因为他不知道该从那个门口(main函数)进,然而类为什么可以有多个呢,你还记的JAVA的三大基本特征么,即封装,继承,多态。而封装就是我们所说的类,他是把所有相同的属性,方法归纳到一起,即组成一个类。这样给你打个比方吧
main函数所在的一个类就相当于一个城市,而main函数就是城市的一个入口,并且只有一个入口,也可是出口,而城市中又有许多小区,我们叫他为类吧,而小区里的房子又基本相同,这也就验证了我们把同一类物品归为一类,即封装在一个类里,而每个小区又不同,这又验证了每一个类的实现功能 是不同的,而类与类这间的调用则是用NEW关键字,这个你应该会吧,继承,多态我就不用说了
main与类没有多关系,也就是类与方法的关系,说了这么多,希望对你有帮助啊
呵呵!
参考技术A main方法是程序执行的入口,所以当然只能有一个main方法,否则程序执行就乱套了,main方法好比就是你的嘴一样,是进食的入口。而你只有一张嘴。

方法必须声明在类里,不光是main方法。否则的话,如果方法单独出来,那就是无根之水。好比做为一个人,你会说话这个方法,如果你这个本体都不存在了,那还有说话这个方法吗?

一个程序当然可以声明多个非公共类。好比你作为一个人,人是一个类吧,你是人这个类的一个对象。你还穿着衣服,裤子。衣服,裤子不也是类么,不也是属于人的么?所以,当然可以在程序中声明多个非公共类。

有些规则记住就好了,不要较真。
参考技术B main函数只是一个比较特殊的函数,它还是属于函数的范畴,所以必须声明在一个类里。
程序的运行也需要有一个开始,而main函数就是程序的开始。在一类中如果有多个main函数的话,JVM又怎么知道应该调用哪个main呢?
main与类的关系就是类与函数的关系,只是这个函数比较特别罢了。
参考技术C 1、main是java的入口方法
2、main的入口方法是规定的写法,可以理解为死的,固定的
3、每个类中,都可以有main方法
4、一个类中,可以有多个main方法,参数可以不一样,但是入口的只有一个
参考技术D Java中main函数可以声明在任意一个类里。因为每个java类中最多可以有一个main函数,或者没有。
那么一个程序为什么可以声明多个类?因为public类只能声明一个,其他的可以任意个,。
只能声明一个main?因为一个类只能有一个大门。不然会混淆的。
main与类多关系?没有什么直接关系,用久了就明白啦。

以上是关于java中main函数的位置必须在public class类中么? (eclipse,editplus环境下)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA语言基础课程作业02

为什么Java的main方法必须是public static void?

Java中main方法必须写在public类中吗

JAVA:从public static void main(String args[])開始

C#中如何为一个有返回值的函数添加新线程

Java学习笔记