Solved

Why main method required in java

Posted on 2003-11-09
2
261 Views
Last Modified: 2010-04-17
Why the signature of main method be always public static void main(String args[])?
What actually happens when we write >> java <classname> <argument1> ?
0
Comment
Question by:amol_ingle
2 Comments
 
LVL 9

Expert Comment

by:bhagyesht
ID: 9712763
Its public static void main for the following reasons.
public since we need to access it outside out class
static since we dont create an instance of the class for executing main
void is the return type (since we are calling from outside return value serves almost no purpose.
string args[] is for storing the arguments as an array

when u call the java class with arguments the arguments are stored in the array and you can access them later in your code.
0
 
LVL 15

Accepted Solution

by:
jimmack earned 250 total points
ID: 9713241
>> What actually happens when we write >> java <classname> <argument1> ?

1) The Java Virtual Machine is started ("java") and it attempts to load the specified class ("<classname>").
2) When the class is successfully loaded, the JVM looks for the main() method entry-point and passes the remaining command line parameters ("<argument1> ...") to this method as an array of Strings.

That's why if you make a typo on the command line, step 1) responds with "NoClassDefFoundError".
If main() is not defined correctly, then step 2) responds with "NoSuchMethodError: main"

Just for information: The main method signature should *always* be the same.  The Java Virtual Machine specifically looks for this method, so if you were to write:

public static void main()
{
   .
   .
}

It wouldn't run.

Also, because Java is fairly relaxed about array definitions, you can also use:

public static void main(String[] args)

(This is the preferred way to define an array - ie. with the [] following the class/type rather than the variable - but both will work OK)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Report events not being triggered 8 113
wordmultiple challenge 12 116
Non-recursive backtracking, using a stack 1 94
MacOS and programming in React 7 27
A short article about problems I had with the new location API and permissions in Marshmallow
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

943 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now