I have installed JDK 6, but I can't execute a Java program.
For example, I have made test.java. I compile it with javac tes.java
and there's no error when I compile it, but when I want to execute that program it always displays an error. I execute the Java program with java tes
.
Exception in thread "main" java.lang.UnsupportedClassVersionError: tes : 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: tes. Program will exit.
My javac version is 1.7.0, my java version is 1.6.0.
Here is my tes.java
code:
class tes{
public static void main(String[]args){
System.out.println("hello");
}
}
Best Answer
It looks like you've compiled the Java source with a newer version of Java (7) which cannot be executed by the older Java runtime (6). If you don't need/want Java 7, uninstall the
openjdk-7-jdk
package and installopenjdk-6-jdk
instead:The alternative is using the direct paths to the specific versions of the compiler or runtime:
Running the Java 7 runtime
It's possible that Java 6 is still the default (compatibility with older programs?). To force the use of the Java 7 runtime, use the direct path to it:
(replace
amd64
byi386
for the 32-bit version of Java)Running the Java compiler version 6
If you want to have code compiled for Java version 6, use the full path to the Java 6 compiler:
Alternatives
Like I've said before, if you don't like version 7 or 6, uninstall it (
openjdk-7-jdk
andopenjdk-7-jre
for version 7,openjdk-6-jdk
andopenjdk-6-jre
for version 6). It's possible to have both versions installed. Use the alternatives system to configure the default one. Run the below commands to configure the runtime and compiler. It'll provide you a choice for the default.