时间:2021-05-19
在我们通过JVM编译Java后缀名的文件时,JVM首先寻找入口(main方法)
public static void main(String[] args)1、由于在入口时,未调用任何对象,该方法只能设置为static静态
2、JVM为Java的最底层,所以即使有返回结果,结果也无处可去,因此该方法必然是void无返回值
3、由于main方法是入口,被JVM自动调用,只有将该方法设置为public公有级别才能对JVM可见
综上,入口main方法只能写为
在我们没有写main方法时,系统会自动会为我们添加一个无参mian主方法,该方法的添加位置为public类中首行(之前也提到过,只有添加在public级别中才对JVM可见,可以自动调用)
注意:如果在java文件中未包含任一公共类(public class),此文件依然可以通过编译,但是主动运行由于找不到public class,就无法自动添加main方法,JVM找不到程序入口,运行会报错,即编译通过运行报错,缺少public class的文件需要等待被其它java文件调用,无法作为入口。
报错:
错误: 找不到或无法加载主类 j2se.Z
原因: java.lang.ClassNotFoundException: j2se.Z
当我们加上public类(public class)后,编译运行通过,根据返回结果可以清楚看到程序的执行顺序,代码如下:
package j2se;class X{ Y y=new Y(); public X(){ System.out.print("X"); }}class Y{ public Y(){ System.out.print("Y"); }}public class Z extends X{ Y y=new Y(); public Z(){ System.out.print("Z"); } public static void main(String[] args) { new Z(); }}运行结果:YXYZ
根据这个运行结果,我们可以看出,程序运行后JVM编译顺序为,JVM直奔public class中main()方法作为入口,并开始编译执行
public static void main(String[] args)以上所述是小编给大家介绍的Java文件执行顺序、main程序入口的详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
浅谈java执行jar包中的main方法通过OneJar或Maven打包后jar文件,用命令:java-jar****.jar执行后总是运行指定的主方法,如果j
publicstaticvoidmain是java程序的入口地址,java虚拟机运行程序的时候要先找到main方法,只有main方法的java程序才能够被jav
在C和Java中,都有一个程序的入口函数或方法,即main函数或main方法。而在JavaScript中,程序是从JS源文件的头部开始运行的。但是某种意义上,我
一个程序中必定会有一个入口,java中main方法就是一个项目的的入口,publicstaticvoidmain(String[]args){}eclipse的
java打包成jarjar-cvf[jar包的名字][需要打包的文件]执行jar包中的main方法java-jar****.jar执行后总是运行指定的主方法,如