Thursday, April 25, 2013

Exception in thread "main" java.lang.UnsupportedClassVersionError


Today, using Cygwin on my windows environment, I was trying to execute the following simple program:

class hellotext
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}

And I was seeing:

Exception in thread "main" java.lang.UnsupportedClassVersionError: hellotext (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)


Now what’s wrong with this simple program?

Nothing really! It’s actually a problem with the environment.

If I do java –version and javac –version, then it returns different versions and that's the issue. 

Everything worked fine when I removed the duplicate JAVA from my system using Control Panel.