当前位置:编程学习 > JAVA >>

一个JAVA工程中可以有多个主类吗?

如题。并请详细解释下。谢谢! --------------------编程问答-------------------- 不可以。原因是。规定如此。 --------------------编程问答-------------------- 你可以同事写多个主类
但是只能允许运行其中的一个主类。 --------------------编程问答-------------------- 逻辑上行不同,程序都需要一个唯一入口,否则系统都不知道你的程序从哪开始。 --------------------编程问答-------------------- 好像不可以吧 --------------------编程问答--------------------
引用 2 楼  的回复:
你可以同事写多个主类
但是只能允许运行其中的一个主类。

就是这样 --------------------编程问答-------------------- 每个class允许存在一个main函数
但是实际执行的,只会是其中一个

如果是java 方式执行,指命令模式 java -cp "*.classpath" MAINCLASSPATH
根据MAINCLASSPATH指定的入口类调用其main函数

如果是jar方式,java -jar MYJAR.jar
则根据jar的mf文件指定的入口类调用main函数 --------------------编程问答-------------------- 可以有多个主类,但是不能够相互引用。并且运行时只能选择一个作为入口 --------------------编程问答-------------------- 运行时,只有一个程序的入口。
你要干嘛?同时执行多个任务? --------------------编程问答--------------------
引用 2 楼  的回复:
你可以同事写多个主类
但是只能允许运行其中的一个主类。


LZ 十分确定。。我做的项目就是这样的 --------------------编程问答-------------------- 不可以了! --------------------编程问答-------------------- 好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。


--------------------编程问答-------------------- --------------------编程问答-------------------- 你说的主类是什么? public的类? public带main方法的类? 一个工程中当然可以有很多public的类!!! --------------------编程问答-------------------- 问题不太清楚,建议说清楚些。

一个工程里面,只能有一个带main方法的类,这就是程序的入口。 --------------------编程问答-------------------- 根据你问的java工程,一个工程中可以有N个带main的类,但当你要运行整个工程时,却只能指定一个类作为入口;一般大家都叫这个类为当前工程的主类,也即只能有一个 --------------------编程问答-------------------- main() 是程序的入口,故只能有一个类中含有main()方法,并且其他的类都会调用含有main()方法的类,故需要定义为public! --------------------编程问答-------------------- 不可以,只能运行一个main()方法作为程序的入口 --------------------编程问答--------------------
引用 2 楼  的回复:
你可以同事写多个主类
但是只能允许运行其中的一个主类。


就是这么回事 --------------------编程问答-------------------- 可以有多个类
 只能有一个是public的
   --------------------编程问答-------------------- 一个工程类,当然可以有多个主类,但是一个主类中只能有一个public,而且只能运行一个。 --------------------编程问答-------------------- App程序每次只能从一个main方法启动. 但你可以为每个类Class定义一个main方法.在启动程序时可通过调用不同的main执行不同的操作! --------------------编程问答-------------------- 完全可以 --------------------编程问答-------------------- 不可以 --------------------编程问答-------------------- 可以的 看你参数运行的那个 --------------------编程问答-------------------- 谢谢大家,应该是可写多个主类,但是只能允许运行其中的一个主类,最近读THINK IN JAVA,上面提到过。呵呵,还是读书少。。。。。。 --------------------编程问答--------------------
引用 25 楼  的回复:
谢谢大家,应该是可写多个主类,但是只能允许运行其中的一个主类,最近读THINK IN JAVA,上面提到过。呵呵,还是读书少。。。。。。
的确如此 --------------------编程问答-------------------- 无所谓,如果你愿意,你可以为你的每一个public类写一个main方法;但运行时你要为你的工程指定入口,也就是从哪个main方法开始运行。还有,你的工程入口main方法中也可以通过反射调用其它的main方法 --------------------编程问答--------------------
引用 7 楼 sky_walker85 的回复:
可以有多个主类,但是不能够相互引用。并且运行时只能选择一个作为入口

不可以相互引用就说不通了,你也可以去main方法也只是一个方法,你完全可以在一个主类中调用另一个主类的main方法 --------------------编程问答-------------------- 可以存在多个类,但是只能有一个主函数。也就是main --------------------编程问答-------------------- 你的工程具体指什么?
如果,是一个普通测试用的,可以有多个主类,每个public类中都有一个main方法。
如果,是一个项目,也可以有多个主类(public class),但是只能有一个入口,即main方法~后期,你可以导出成为jar包。你试想如果有多个入口,那程序要怎么调用呢?所以啦。。。 --------------------编程问答-------------------- 可以。

你将项目打成可运行jar文件时,会让你选择主类。

--------------------编程问答-------------------- 不可以那样滴 --------------------编程问答-------------------- 貌视不可以的 --------------------编程问答-------------------- 一个工程可以有多个入口 ,   一个进程只能选择一个入口 --------------------编程问答--------------------
引用 14 楼 dcxy0 的回复:
问题不太清楚,建议说清楚些。

一个工程里面,只能有一个带main方法的类,这就是程序的入口。

其实一个java工程中可以有多个带main方法的类,不过只有一个main方法运行时会用到,其他的main方法可以用来测试是用! --------------------编程问答-------------------- 不可以。原因是。规定如此。 --------------------编程问答--------------------
引用 11 楼 zhou9898 的回复:
好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。


我靠,不要误人子弟。 --------------------编程问答--------------------
引用 29 楼 liu80212031 的回复:
可以存在多个类,但是只能有一个主函数。也就是main

应该是可以存在多个主类,但只有一个主函数 --------------------编程问答-------------------- 自己试试不就知道了?
--------------------编程问答--------------------
引用 37 楼 x19881216 的回复:
引用 11 楼 zhou9898 的回复:好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。

我靠,不要误人子弟。


你知道那你说啊。
那么多星星不是误人子弟来的?


--------------------编程问答-------------------- 在java文件中的确可以有多个类,比如内部类,但是只能有一个主类来作为程序的入口,这个主类用public来修饰,其他的类不能用public 来修饰。 --------------------编程问答-------------------- 在一个主类里不一样可以执行其他主类.... --------------------编程问答-------------------- main()是程序入口,一个类中只能有一个主方法 --------------------编程问答-------------------- 可以写多个主类,但是只能运行一个! --------------------编程问答--------------------
引用 11 楼 zhou9898 的回复:
好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。


同意观点 --------------------编程问答-------------------- 计算机其实在同一瞬间只能执行同时执行一条命令,看起来程序有那么多功能、那么多代码,其实计算机cpu执行起来是按优先级顺序执行的,并不能同时执行两条或者多条命令,所以给计算机写的程序必须要有一定的规则和顺序,main函数是java语言程序的入口地址,有且只有一个,如果多个main函数的程序存在,计算机执行之后要么是后面的main函数的地址将前面的覆盖掉,到最后只行政一个入口地址,要么若多入口程序真的存在..计算机是不会自己做出选择的,,所以..会死机吧..或者随机执行个入口了...  这样的话写程序就违反了自己写程序的初衷。 --------------------编程问答--------------------
引用 11 楼 zhou9898 的回复:
好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。


lz说的主类和你说的public类好像不是一回事,你说的这段没啥错但就这个帖子确实误人子弟... --------------------编程问答-------------------- 可以的 --------------------编程问答-------------------- 可以有多个主类 但是只有一个程序入口 --------------------编程问答-------------------- 我记得用eclipse 可以写很多public 类的,而在一个java文件中就只能有一个public 类了 --------------------编程问答-------------------- 一个Java文件中只能有一 个public类
楼主所说的主类是不是类中有public static void main(String[] args){}主函数的偶
因为编译时有几个类便会生成几个class文件,含有主函数的都可以独立运行
所以有多个主类是完全可以的,但是这种 类不可以相互调用,如果调用,那么在执行调用其他所谓主类的类的class文件时,就会出现多个入口虚拟机无法识别而造成错乱,
--------------------编程问答--------------------
引用 31 楼 is_zhoufeng 的回复:
可以。

你将项目打成可运行jar文件时,会让你选择主类。


好像是这么回事。。。 --------------------编程问答-------------------- 我也不是很清楚,所以是来看回帖学习的 --------------------编程问答-------------------- 各位啊!题目说的是在一个java工程中 工程!而不是一个文件 看清楚再说嘛!肯定可以有多个主类啊 --------------------编程问答-------------------- 刚刚百度了一下 额 我错了 主类是指既有public修饰 也要有main方法的类 --------------------编程问答-------------------- 主类?? 你想问的是 声明public 类的问题 还是主方法?? --------------------编程问答-------------------- 学习了  都是高手啊 --------------------编程问答-------------------- 都是天才...看这个帖子做就完了.. --------------------编程问答-------------------- 呵呵,不可以,你可以写多个主类,但是,只能运行一个。 --------------------编程问答--------------------
引用 47 楼 yktd26 的回复:
引用 11 楼 zhou9898 的回复:好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。

lz说的主类和你说的public类好像不是一回事,你说的这段没啥错但就这个帖子确实误人子弟...
  ……


那是那回事呢????既然高手有不同见解就说出嘛。 --------------------编程问答--------------------
引用 60 楼 zhou9898 的回复:
lz说的主类和你说的public类好像不是一回事,你说的这段没啥……


引用
A main class is a class that contains a main method. This class acts as the entry point for a Java application (i.e., its main method will be where the Java code begins its execution). A main class can have any name although typically it will just be called "Main".


我就不翻译了,省得你又说是抄的,这本来就是抄的,哈哈 --------------------编程问答--------------------
引用 40 楼 zhou9898 的回复:
引用 37 楼 x19881216 的回复:引用 11 楼 zhou9898 的回复:好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。

我靠,不要误人子弟。

你知道那你说啊。
那么多星星……


不能说你是误人子弟,只能说你是答非所问 --------------------编程问答--------------------
引用 51 楼 m243723424 的回复:
一个Java文件中只能有一 个public类
楼主所说的主类是不是类中有public static void main(String[] args){}主函数的偶
因为编译时有几个类便会生成几个class文件,含有主函数的都可以独立运行
所以有多个主类是完全可以的,但是这种 类不可以相互调用,如果调用,那么在执行调用其他所谓主类的类的class文件时,就会出现多个入……

不能调用就完全说不过去了,main方法他妈的就只是一个方法,你完全可以在一个类的main方法中调用其他类的main方法或者其他方法 --------------------编程问答--------------------
引用 14 楼 dcxy0 的回复:
问题不太清楚,建议说清楚些。

一个工程里面,只能有一个带main方法的类,这就是程序的入口。

不要想当然的说 --------------------编程问答-------------------- 当然不行,应为入口只能有一个 --------------------编程问答--------------------
引用 63 楼 oZouBianBian 的回复:
引用 51 楼 m243723424 的回复:一个Java文件中只能有一 个public类
楼主所说的主类是不是类中有public static void main(String[] args){}主函数的偶
因为编译时有几个类便会生成几个class文件,含有主函数的都可以独立运行
所以有多个主类是完全可以的,但是这种 类不可以相互调用,如果调用,那么在执行调用其他……
调用了之后有几个入口?虚拟机要识别哪一个?还有,嘴请放干净点 --------------------编程问答-------------------- class A 
{
public static void main(String[] args) 
{
System.out.println("Hello World!");


}
}
class B
{


public static void main( String[] args)
{
A a = new A();
String[] s = new String[3];
a.main(s);

}
}
这个可以运行。。。。之前说的是错的,对不起,这些东西需要自己去验证,说话都没有用 --------------------编程问答-------------------- 话说,如果main(String[] args)方法是程序的唯一入口的话,楼上的程序入口是哪一个main(String[] args)方法? --------------------编程问答--------------------
引用 68 楼 wuyanxue 的回复:
话说,如果main(String[] args)方法是程序的唯一入口的话,楼上的程序入口是哪一个main(String[] args)方法?




引用 66 楼 m243723424 的回复:
引用 63 楼 oZouBianBian 的回复:引用 51 楼 m243723424 的回复:一个Java文件中只能有一 个public类
楼主所说的主类是不是类中有public static void main(String[] args){}主函数的偶
因为编译时有几个类便会生成几个class文件,含有主函数的都可以独立运行
所以有多个主类是完全可以的,但是这……



关于你说的多个入口的问题,你都有一个main方法进到了虚拟机了,你还考虑什么入口不入口的问题,就像教室有前后两个门,你都进了教室了,你还关心你从哪个门进来的吗 --------------------编程问答--------------------
引用 69 楼 oZouBianBian 的回复:
引用 68 楼 wuyanxue 的回复:话说,如果main(String[] args)方法是程序的唯一入口的话,楼上的程序入口是哪一个main(String[] args)方法?



引用 66 楼 m243723424 的回复:引用 63 楼 oZouBianBian 的回复:引用 51 楼 m243723424 的回复:一个Java文件中只能有一 个pu……


不管有多少个main方法, 也不管你怎么去调用, 只有你把它当做入口的那个main才是程序的入口,你不把它当做入口,他就只是一个方法,仅此而已,就像教室有前后两个门,你的目的是要进教室你都进了教室了,你还要去纠结该从哪个门进吗 --------------------编程问答-------------------- 我新手,不知道67楼程序的入口是哪一个main()方法,求解,程序如何分辨哪一个main()方法是入口 --------------------编程问答-------------------- 可以写多个main方法,不过要指定哪一个,自己试一下嘛~我自己测试的时候经常会写多个main方法,最后在整合在一起 --------------------编程问答--------------------
引用 2 楼 zss6233305 的回复:
你可以同事写多个主类
但是只能允许运行其中的一个主类。


正解+1 --------------------编程问答-------------------- 只能有一个public类 存在 并且与文件名一致
其他的类个数不限 --------------------编程问答-------------------- 不知道你说的一个工程里的主类是什么概念,如果是一个可运行的java工程,那么只能用一个类里有main方法,如果是web应用或其他依赖容器的工程,那么可以没有main方法的,写了容器也不会去调用 --------------------编程问答--------------------
引用 47 楼 yktd26 的回复:
引用 11 楼 zhou9898 的回复:好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。

lz说的主类和你说的public类好像不是一回事,你说的这段没啥错但就这个帖子确实误人子弟...
  ……


好吧,那你给个答案吧?你不误人子弟。
--------------------编程问答--------------------
引用 73 楼 woxinfeixian93 的回复:
引用 2 楼 zss6233305 的回复:你可以同事写多个主类
但是只能允许运行其中的一个主类。

正解+1


哪里正解???

其他的主类就不能运行了?报什么错? --------------------编程问答--------------------
引用 62 楼 oZouBianBian 的回复:
引用 40 楼 zhou9898 的回复:引用 37 楼 x19881216 的回复:引用 11 楼 zhou9898 的回复:好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。

我靠,不要误人子……


那你觉得答案是什么?

你也没给答案嘛。就知道在哪里说别人说的不对。次奥 --------------------编程问答--------------------
Quote: 引用 9 楼 guominghua2 的回复:

引用 2 楼  的回复:你可以同事写多个主类
但是只能允许运行其中的一个主类。

--------------------编程问答-------------------- 楼主  你写了两个主类

                public class A
               {

                }


             public class B
          {


            }

你认为能编译通过吗?  JVM虚拟机知道进入哪个入口吗? --------------------编程问答-------------------- 你可以再一个包里面新建很多文件,这些文件都是可以包含主类的 --------------------编程问答--------------------
引用 76 楼 zhou9898 的回复:
好吧,那你给个答案吧?你不误人子弟。


主类不主类,完全是运行期的事情,如果程序的任务唯一打包程序在manifest里指明运行时主类以方便运行时的参数设置,那么主类及main函数就被声明在manifest里,运行时不需要指明主类,

但这不妨碍一个多用途的程序,举个例子pdfbox的主jar可以完成不同的任务,那么运行时显性的指明程序主类,即此次运行的入口

一个程序编译时没有任何限制说只能有一个主类(在manifest中主类缺省的情况下),可被当作主类的类只是需要一个符合java入口标准的main函数

但是一个被运行了的程序肯定只有过一个主类,因为运行一个程序的入口是唯一的

总的来说一个java程序完全可以在编译时定义多个可以充当运行入口的主类,但是运行时只能选择其一来启动程序

本来简单的事情,非得来抬杠,你这个态度的最好凉快去,这个地方不太适合你 --------------------编程问答--------------------
引用 71 楼 wuyanxue 的回复:
我新手,不知道67楼程序的入口是哪一个main()方法,求解,程序如何分辨哪一个main()方法是入口
入口的形式都是public static void main(String[] args){} --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 都是理论高手,好多不同的答案 --------------------编程问答-------------------- 你家可以有好多门,但一次你只能进一个门 --------------------编程问答--------------------
引用 84 楼 zhou9898 的回复:
我去,亲,怎么是我错了呢?我态度怎么又不好了?
别人反驳我,我当然要证明我对的了啊?要不你个狗日的怎么也在证明自己啊?
你难道说你没在证明自己?...


呵呵,别在这现眼了,先回家补补中文,学学怎么说人话.
再者别人反驳你,要是反驳的对,就是你错了,我要是明知道我错了,我就不反驳了,就不证明自己了.
最后,你态度怎么不好贯穿你所有的回复,是个人就看出来了
别那个啥急了就跳墙,回家关上门,看看你家的墙,

哈 亲 --------------------编程问答--------------------
引用 83 楼 m243723424 的回复:
Quote: 引用 71 楼 wuyanxue 的回复:

我新手,不知道67楼程序的入口是哪一个main()方法,求解,程序如何分辨哪一个main()方法是入口
入口的形式都是public static void main(String[] args){}


关于67楼的程序应该是:如果当前文件名为A.java,就运行class A的main,如果是B.java,就运行class B的main方法,如果名字既不是A.java,也不是B.java,就会报错的。

单独一个java文件,会去找与文件名相同的class里面的main作为入口。 --------------------编程问答--------------------
引用 11 楼 zhou9898 的回复:
好多打酱油的。
以及好多乱说的。

在.JAVA文件中可以有很多个类。
但是只能有一个类可以定义成public的。
而且在编译之后,运行的时候看你运行的哪个.CLASS文件。

每个类对应一个CLASS文件。

我就是打酱油的 --------------------编程问答-------------------- 看人家问题简单,你们这帮货都来回答来了,我草 !!!
--------------------编程问答-------------------- 多个主类是可以的,但是运行只能运行一个。你一个文件写两个类,都有main函数,你也可以编译——》生成连个class文件就是了,但是你运行哪个就得自己决定了。你在eclipse里执行,也是要自己选择执行哪个主函数。结论是可以但是只能执行一个,好了,结贴吧。否则,不知道下面又得有什么奇思妙想。另外上面有说只有一个可以定义为public,这就是胡扯的,还在那吵来吵去的,作为一个只会hello word的人都鄙视那两了。 --------------------编程问答-------------------- 我每个业务类都有个 main是用来测试的, 一般同时只运行一个, --------------------编程问答-------------------- 主类?这是什么概念?那本书上翻译过来的? --------------------编程问答-------------------- 看楼上的回复,java中只能有一个public的类?
不会吧. --------------------编程问答-------------------- 如果一个jar包导出时,指定了main方法,那执行该jar包就执行指定的main方法了。如果一个jar包有多个main方法,那导出时就无需指定main方法了,在执行时指定,这样一个jar包可以做更多的事情,而且里面的很多代码都可共用。 --------------------编程问答-------------------- 多久的帖子了。。 --------------------编程问答--------------------
引用 96 楼 fudongrifdr 的回复:
多久的帖子了。。
 元首不是有权限帮忙结贴么 
--------------------编程问答-------------------- 多久的帖子了。。 
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,