0
$ 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?

3
  • 1
    Use java -cp . testpackage.Test. The argument to java is a class name and not the Java source file name. Commented May 14, 2012 at 10:27
  • OK, I will edit the question to reflect the progress. Commented May 14, 2012 at 12:48
  • I edited it, now it should reflect it. When I was trying more possibilities in the commands, this was one of the errors that occurred. Commented May 14, 2012 at 12:57

3 Answers 3

2

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.

Sign up to request clarification or add additional context in comments.

2 Comments

I have done it. Now it ends with UnsupportedClassVersionError
This is the continuation of the question that helped me to solve it completely.
0

Remove .java from you java command.

You need to specify the fully qualified classname which is just "testPackage.Test".

1 Comment

I have done it. Now it ends with UnsupportedClassVersionError
0

From /home/tu/java :

java -cp . testPackage.Test

(don't put '.java' on the end)

1 Comment

I have done it. Now it ends with UnsupportedClassVersionError

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.