This week's giveaway is in the Spring forum.
We're giving away four copies of REST with Spring (video course) and have Eugen Paraschiv on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes About args to main() Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of REST with Spring (video course) this week in the Spring forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "About args to main()" Watch "About args to main()" New topic

About args to main()

Rashmi Tambe
Ranch Hand

Joined: Aug 07, 2001
Posts: 418
I tried following code...

I u run it as java testMain
the o/p is
in main 0
Exception in thread "main" java.lang.NullPointerException
at testMain.m1(
at testMain.main(

Even if args to main are not initialised while running the program, args.length prints '0'. But if static arr a1 is not initialised and a.length is tried , it throws NullPointerException. Why so??? or i am missing something?? or args to main are automatically initialised???
Thanx in advance.
Maulin Vasavada
Ranch Hand

Joined: Nov 04, 2001
Posts: 1873
Hi Rashmi,
static arguments are also initialized. Here a[] is reference and so it's initialized to null. so when u say a.length it raises an exception.
but true, u r right about the main() method. even if u don pass anything at run time to the program it's not initialized to null but it's something like args[] = new String[0]. and so when u do args.length on main() methods parameter it says '0' as result.
if u do same thing with that static int[] a (meaning initializing like static int[] a = new int[0]) it wont give u exception but answer as '0' when u try to do a.length
I agree. Here's the link:
subject: About args to main()
It's not a secret anymore!