I wanted to test the platform independence of java.So I wrote the hello world program in java and compiled it using the compiler for windows to create the HelloWorld.class file. Then I tried to run that file in linux(ubuntu).I ended up in an error.(the JRE was already installed in linux)
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: HelloWorld. Program will exit.
Then I compiled the same program using the linux compiler and used that .class file to check whether it runs in windows.It worked perfectly.
As my knowledge on both occasions the program should have worked perfectly because the byte code file(.class) is platform independent.What has gone wrong when I tried to run the program in linux?