不支持的主要版本,尽管使用了正确的 Java 版本



我正在运行一个使用 Eclipse 的脚本,我看到这个错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: my/file/path/goes/here/CreateEcoreFile : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

一些谷歌搜索让我相信我可能正在尝试用Java 8编译器编译Java 7项目。我已经检查了我的系统(Cent OS 6(,我只安装了Java 7,我什至将Eclipse降级到Neon 1.A,它的构建路径是Java 7。

$ java -version
java version "1.7.0_51"

我还能做什么?

根据这个答案,版本 52.0 意味着 Java 8。Eclipse使用自己的ECJ编译器,它是IDE的一部分,可能使用Java 8作为默认值。

按照本指南操作,将项目的 Java 编译器版本设置为 Java 7:

  1. 转到窗口 -> 首选项
  2. 转到 Java -> 编译器
  3. 选择编译器合规性级别

最新更新