Java中的main()方法是强制性的吗?

问题是main()在Java中方法是强制性的吗?”

  • 是的,我们可以编写一个没有main()方法的java程序,但是有一个条件当且仅当java jdk版本到jdk 5

  • 直到Java JDK 5的main()方法不再强制包含在Java程序中。

  • 如果我们不在main()方法中编写代码或在程序中不包含main()方法,那么在这种情况下,我们只需要在静态块下编写代码,那么在这种情况下,我们可以像我们一样正常执行代码。

示例

//Java程序演示直到Java JDK5版本 
//没有main()方法是可能的。
class WithoutMainMethod {
    static {
        int i = 2, j = 4, sum;
        
        sum = i + j;
        
        System.out.println("The sum of i and j is :" + sum);
        System.out.println("This program is without main() valid till JDK 5 version");
    }
}

输出结果

E:\Programs>javac WithoutMainMethod.java

E:\Programs>java WithoutMainMethod
The sum of i and j is : 6
This program is without main() valid till JDK 5 version
  • 在使用静态块的情况下,该静态块在main()方法之前执行。

  • 静态块在类加载时执行。

  • 对于main()方法,我们的程序从main()方法开始执行,换句话说,它是程序执行的起点。

  • 我们可以直接调用main()方法,而无需创建对象,因为它是静态的。

  • 直到Java JDK 5 main()方法没有强制执行,但是从Java JDK 6 main()开始是强制性的,如果我们在程序中不包含main()方法,则将得到RuntimeException “在类中找不到main方法”

示例

//程序演示无main()方法 
//从Java JDK 6版本开始
class WithoutMain{
	int i=2 , j=4 , sum=0;
	sum = i + j;
	System.out.println("The sum of i and j is :" + sum);
	System.out.println("This program without main() is not valid from JDK 6 version");
}

输出结果

E:\Programs>javac WithoutMain.java

E:\Programs>java WithoutMain
Error: Main method not found in class WithoutMain, please define the main method as:
   public static void main(String[] args)