[FIXED] Who calls the main function in java?

Issue

public static void main(String[] args) 
{
    boolean t=true;
    System.out.println("Before return");
    if(t) return;
    System.out.println("not execute");
}

In the above code when the return is used then it should return to the function which calls the main function. Who exactly calls the main function?

Solution

Java classes are executed within a larger context (a particular JVM as others have noted). Below are some possibilities:

In all cases the main() method is the canonical entry point to executing code given a particular class. From the docs on the java JVM:

DESCRIPTION

The java tool launches a Java application. It does this by starting a Java runtime environment, loading a specified class, and invoking that class’s main method. The method declaration must look like the following:

   public static void main(String args[])

The method must be declared public and static, it must not return any value, and it must accept a String array as a parameter. By default, the first non-option argument is the name of the class to be invoked. A fully-qualified class name should be used. If the -jar option is specified, the first non-option argument is the name of a JAR archive containing class and resource files for the application, with the startup class indicated by the Main-Class manifest header.

The Java runtime searches for the startup class, and other classes used, in three sets of locations: the bootstrap class path, the installed extensions, and the user class path.

Non-option arguments after the class name or JAR file name are passed to the main function.

The javaw command is identical to java, except that with javaw there is no associated console window. Use javaw when you don’t want a command prompt window to appear. The javaw launcher will, however, display a dialog box with error information if a launch fails for some reason.

You state:

In the above code when the return is used then it should return to the function which calls the main function.

There may not be any other Java function (in fact there usually isn’t) which calls the main() function. It’s the convention for declaring a well-known entry point. If the JVM is launched to run your class’s main() method, then when main() returns, the JVM exits, except in a few special cases, e.g. there are other non-daemon threads running or there is a shutdown hook.

Answered By – Jason S

Answer Checked By – Marilyn (Easybugfix Volunteer)

Leave a Reply

(*) Required, Your email will not be published