UnsupportedClassVersionError exception in Java 1.6.0
-
08-06-2021 - |
Question
$ pwd
/home/tu/java/testpackage
$ cat Test.java
package testpackage;
public class Test {
public static void main(String[] args) {
System.out.println("hi");
}
}
$ javac -version
javac 1.7.0_147
$ java -version
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2)
OpenJDK Client VM (build 20.0-b11, mixed mode, sharing)
$ cd ..
$ javac -cp . testpackage/Test.java
$ java -cp . testpackage.Test
Exception in thread "main"
java.lang.UnsupportedClassVersionError: testpackage/Test :
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: testpackage.Test. Program will exit.
What could be wrong in my case of this error?
Solution
java
utility is not a compiler. It is JVM.
You should compile your code first:
javac -cp . testpackage/Test.java
This will produce Test.class
file. Now you can run it:
java -cp . testpackage.Test
Pay attention that when you are running the program you do not have to write .class
extension.
OTHER TIPS
Remove .java from you java command.
You need to specify the fully qualified classname which is just "testPackage.Test".
From /home/tu/java :
java -cp . testPackage.Test
(don't put '.java' on the end)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow