运行 Java 程序时出现 UnsupportedClassVersionError

运行 Java 程序时出现 UnsupportedClassVersionError

我的 Java 程序编译成功。但当我尝试运行时,我得到了

Exception in thread "main" java.lang.UnsupportedClassVersionError: hello :
        Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
    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:323)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: hello. Program will exit.

答案1

你似乎用了两个不同的 Java 版本为了编译跑步该程序,如 1.8 和 1.6,其编译器更新得多。

可能是使用的 JDK 位于不同版本的 JRE 之后的路径中。请查看

echo $PATH

type javac
type java

javac -version
java -version


例如,如果您具有以下版本:
javac 1.7.0_55
java 1.6.0_31,那么您可以将 JDK/JRE 1.7 放在 1.6 之前的 $PATH 中 - 以便使用 1.7 进行编译和运行;
或者获取 1.6 JDK 并将其放在您当前使用的 JDK 之前的 $PATH 中 - 以便使用 1.6 进行编译和运行。

相关内容